您的位置:首页 > 其它

在WPF程序中使用多线程技术

2010-01-10 19:15 190 查看
在WPF应用程序中使用多线程的方式与Windows Forms很类似,区别在于,如果需要更新主线程UI上面的元素,需要用一个特殊的方法(this.Dispatcher.Invoke)

下面是一个简单的范例,演示了如何执行一个简单的方法,它使用了callback的机制进行多线程异步执行。

Func<string> func = new Func<string>(() =>
{
Thread.Sleep(5000);
return "Hello,world";
});

AsyncCallback callback = new AsyncCallback((i) =>
{
this.Dispatcher.Invoke(
new Action(() =>
{
this.Title = func.EndInvoke(i);
}));
});
func.BeginInvoke(callback, null);

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: