c# - 当工作线程正在工作时,什么代码可以更好地延迟主线程

标签 c# multithreading performance .net-3.5

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

1)

int ticks = System.Environment.TickCount;
while (System.Environment.TickCount - ticks < milliseconds);

2)

Thread.Sleep(milliseconds);

3)

Your variant.

谢谢。

已添加

解决方案:

Wait Timeouts

最佳答案

这些都不好。当工作线程执行其工作时,任何一个都会导致 UI 变得无响应。

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

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

Deployment.Current.Dispatcher.BeginInvoke(() =>
{
   // Your UI thread code to run here.
}

See also .

您还可以使用 background workers .

关于c# - 当工作线程正在工作时,什么代码可以更好地延迟主线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7368041/

相关文章:

c# - 条件编译题

c# - 在新线程中启动 Parallel.ForEach 的良好形式

java - 加快图像下载时间

java - 性能:Apache HttpAsyncClient与多线程URLConnection

python - Python线程未释放锁

java - 以下代码的复杂性

java - 如何在 C# 和 Java 之间正确设置 ssl 套接字连接?

c# - 将表达式评估为字符串,返回对象?

c# - Windows 服务应用程序 app.config

multithreading - WinForms 线程安全控件