WPF Thread 参数
时间: 2023-09-11 07:07:30 浏览: 102
wpf相互调用传递参数
3星 · 编辑精心推荐
在WPF中,可以使用ParameterizedThreadStart委托来创建带参数的线程。该委托的参数类型必须是Object。你可以在Main方法中创建一个新的线程,并使用ParameterizedThreadStart委托将带有参数的方法作为参数传递给线程。例如:
```
private void Main()
{
Thread t1 = new Thread(new ParameterizedThreadStart(ThreadMethod));
t1.IsBackground = true;
t1.Start("thread param");
}
private void ThreadMethod(object param)
{
//Thread method
Console.WriteLine(param.ToString());
}
```
另外,在WPF中也可以创建不带参数的线程。你可以使用ThreadStart委托来创建不带参数的线程。例如:
```
private void Main()
{
Thread t1 = new Thread(new ThreadStart(ThreadMethod));
t1.IsBackground = true; //默认后台线程
t1.Start();
}
private void ThreadMethod()
{
//Thread method
}
```
在WPF中,如果希望在子线程中更新界面,可以使用Application.Current.Dispatcher.Invoke方法。通过将需要在主线程上执行的代码包装在lambda表达式中,可以使用Dispatcher.Invoke方法在主线程上执行该代码。例如:
```
Application.Current.Dispatcher.Invoke(() =>
{
//your logic
});
```
通过使用这种方式,你可以在子线程中委托主线程来完成特定的任务。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [C#及WPF多线程定义和使用1(Thread)](https://blog.csdn.net/lvxingzhe3/article/details/121049576)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *3* [WPF入门9:线程(Thread)](https://blog.csdn.net/kalvin_y_liu/article/details/127209725)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文