Я не уверен, какую стратегию принять... Я сосредотачиваюсь на завершении моей работы, но я также хотел бы сохранить проблемы с производительностью до минус... есть метод под названием Выполнять ( ), который должен ждать (запускать синхронно) до завершения операции. Эта операция выполняется в другом потоке. Есть два способа реализовать одно и то же...
Используя ManualResetEvent
void Execute()
{
taskHandle = new ManualResetEvent(false);
.
.
//delegate task to another thread
.
.
taskHandle.WaitOne();
}
ИЛИ
Используя простую конструкцию
void Execute()
{
.
.
//delegate task to another thread
.
.
while (!JobCompleted)
Thread.Sleep(1000);
}
Какой из двух подходов я должен принять... почему?
EDIT:
Q2. Что, если у меня просто было пустое место? В чем разница...?
while(!JobCompleted);
EDIT: (что-то, что я собрал раньше)
http://www.yoda.arachsys.com/csharp/threads/waithandles.shtml - В этой статье говорится, что manualresets являются сравнительно медленными, потому что они выходят из управляемого кода и обратно...