什么代码更好地延迟主线程工作线程正在做它的工作

gar*_*rik 2 c# performance multithreading .net-3.5

在工作线程执行其工作时,什么代码更好地延迟(等待)主线程?

1)

int ticks = System.Environment.TickCount;
while (System.Environment.TickCount - ticks < milliseconds);
Run Code Online (Sandbox Code Playgroud)

2)

Thread.Sleep(milliseconds);
Run Code Online (Sandbox Code Playgroud)

3)

Your variant.
Run Code Online (Sandbox Code Playgroud)

谢谢.

添加

解:

等待超时

i_a*_*orf 5

这些都不好.任何一个都会导致UI在工作线程正在工作时变得无响应.

相反,您应该安排工作项在工作线程上运行,然后在工作完成时将消息发送回UI线程.

从工作线程在UI线程上运行的一种方法是:

Deployment.Current.Dispatcher.BeginInvoke(() =>
{
   // Your UI thread code to run here.
}
Run Code Online (Sandbox Code Playgroud)

另见.

您也可以使用后台工作人员.