C# 如何正确使用BeginInvoke方法?
我有这个密码。它可以工作,但会冻结用户界面。 我想知道的是如何正确使用WPF BeginInvok方法C# 如何正确使用BeginInvoke方法?,c#,wpf,C#,Wpf,我有这个密码。它可以工作,但会冻结用户界面。 我想知道的是如何正确使用WPF BeginInvok方法 private void ValidateAuthURL_Click(object sender, RoutedEventArgs e) { ((Button)sender).Dispatcher.BeginInvoke(DispatcherPriority.Input, new ThreadStart(() => { b
private void ValidateAuthURL_Click(object sender, RoutedEventArgs e)
{
((Button)sender).Dispatcher.BeginInvoke(DispatcherPriority.Input,
new ThreadStart(() =>
{
bool result = false;
try
{
您的委托将在UI线程中执行。这就是Dispatcher.BeginInvoke的作用。我假设您真的想在后台线程中执行该委托。。。然后应该使用
Dispatcher.BeginInvoke
返回UI线程,以便稍后更新UI
在获取后台线程方面,您可以:
- 直接使用线程池(
)ThreadPool.QueueUserWorkItem
- 使用
BackgroundWorker
- 开始一个新的线程
- 使用
(如果您使用的是.NET4)Task.Factory.StartNew
Dispatcher.BeginInvoke
返回UI线程,以便稍后更新UI
在获取后台线程方面,您可以:
- 直接使用线程池(
)ThreadPool.QueueUserWorkItem
- 使用
BackgroundWorker
- 开始一个新的线程
- 使用
(如果您使用的是.NET4)Task.Factory.StartNew