码迷,mamicode.com
首页 > 编程语言 > 详细

ThreadPool(线程池)

时间:2015-01-27 11:04:05      阅读:280      评论:0      收藏:0      [点我收藏+]

标签:

WPF使用ThreadPool.QueueUserWorkItem线程池防界面假死

时间:2012-01-09 20:44来源:http://luacloud.com 作者:luacloud 点击:1554次
其实并不光是WPF,在WinForm中也会经常遇到这种导致界面假死的现象,在目前,防止假死的方法几乎都是使用线程来进行,比如使用System.ComponentModel.BackgroundWorker,现在还有一种方法是使用线程池ThreadPool.QueueUserWorkItem来防止界面假死,而至于说使用这两个类哪一个更好,其实还是要根据需求的不同而选择更合适
  

  其实并不光是WPF,在WinForm中也会经常遇到这种导致界面假死的现象,在目前,防止假死的方法几乎都是使用线程来进行,比如使用System.ComponentModel.BackgroundWorker,现在还有一种方法是使用线程池ThreadPool.QueueUserWorkItem来防止界面假死,而至于说使用这两个类哪一个更好,其实还是要根据需求的不同而选择更合适的方法。这里只是举一个基本的例子,用来更新UI上的实时数据,而采用ThreadPool.QueueUserWorkItem的方式。

ThreadPool.QueueUserWorkItem((o) =>
{
    for (long i = 1; i < 1000000; i++)
    {
        t1.Dispatcher.Invoke(new Action(() =>
        {
            t1.Text = i.ToString();
        }));
    }
});

  上面这段代码中t1是UI中的一个TextBlock控件,这样,在更新的时候就解决了假死的问题。

  本文来自luacloud的博客,原文地址:http://luacloud.com/2012/wpf-threadpool-queueuserworkitem.html

ThreadPool(线程池)

标签:

原文地址:http://www.cnblogs.com/changbaishan/p/4252086.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!