Что это означает, что если вы говорите, что опрос не разрешен при внедрении вашего потока решения, поскольку он расточительный, он имеет латентность, и он не является детерминированным. Нитки не должны использовать опрос, чтобы сигнализировать друг другу.C#: что такое опрос?
EDIT
на основе ваших ответов до сих пор, я считаю, моя реализация многопоточности (взятую из: http://www.albahari.com/threading/part2.aspx#_AutoResetEvent) ниже не используется опрос. Пожалуйста, поправьте меня, если я ошибаюсь.
using System;
using System.Threading;
using System.Collections.Generic;
class ProducerConsumerQueue : IDisposable {
EventWaitHandle _wh = new AutoResetEvent (false);
Thread _worker;
readonly object _locker = new object();
Queue<string> _tasks = new Queue<string>();
public ProducerConsumerQueue() (
_worker = new Thread (Work);
_worker.Start();
}
public void EnqueueTask (string task) (
lock (_locker) _tasks.Enqueue (task);
_wh.Set();
}
public void Dispose() (
EnqueueTask (null); // Signal the consumer to exit.
_worker.Join(); // Wait for the consumer's thread to finish.
_wh.Close(); // Release any OS resources.
}
void Work() (
while (true)
{
string task = null;
lock (_locker)
if (_tasks.Count > 0)
{
task = _tasks.Dequeue();
if (task == null) return;
}
if (task != null)
{
Console.WriteLine ("Performing task: " + task);
Thread.Sleep (1000); // simulate work...
}
else
_wh.WaitOne(); // No more tasks - wait for a signal
}
}
}
Вы имеете в виду объединение? –
Вам нужно дать больше информации о том, где вы слышали этот термин и, в частности, что * вы пытаетесь достичь. –
Нет, не пул - это опрос – Moon