多线程疑问c++,当主线程不断触发这个多线程,而多线程还没处理完主线程又触发它,在不影响主线程处理

多线程疑问c++,当主线程不断触发这个多线程,而多线程还没处理完主线程又触发它,在不影响主线程处理的速度下,应当如何处理?

利用 ManualResetEvent和WaitHandle.WaitAll:
public class Fibonacci
{
public Fibonacci(int n, ManualResetEvent doneEvent)
{
_n = n;
_doneEvent = doneEvent;
}

// Wrapper method for use with thread pool.
public void ThreadPoolCallback(Object threadContext)
{
int theThreadNo = (int)threadContext;
_doneEvent.Set();
}

// Recursive method that calculates the Nth Fibonacci number.
public int Calculate(int n)
{
if (n <= 1)
{
return n;
}

return Calculate(n - 1) + Calculate(n - 2);
}

public int N { get { return _n; } }
private int _n;

public int FibOfN { get { return _fibOfN; } }
private int _fibOfN;

private ManualResetEvent _doneEvent;
}
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答