C# wpf中未更新标签
我在WPF中遇到了一个问题,即当一个方法正在进行时,标签不会更新。 这是代码C# wpf中未更新标签,c#,wpf,multithreading,dispatcher,C#,Wpf,Multithreading,Dispatcher,我在WPF中遇到了一个问题,即当一个方法正在进行时,标签不会更新。 这是代码 private async void BtnMatching_Click_1(object sender, RoutedEventArgs e) { var selectedItem = (dynamic)ListViewQueries.SelectedItems[0]; var myQuery = _queryFolder[selectedItem] as Microsoft.TeamFoundat
private async void BtnMatching_Click_1(object sender, RoutedEventArgs e)
{
var selectedItem = (dynamic)ListViewQueries.SelectedItems[0];
var myQuery = _queryFolder[selectedItem] as Microsoft.TeamFoundation.WorkItemTracking.Client.QueryDefinition;
DataTable dtRevision= new DataTable();
DataTable dtExportData = new DataTable();
var TTSList = Task<List<UsersModel>>.Factory.StartNew(() => TTSProcessing(TTSFileName));
LblMessage.Content = "Processing TTS File...";
// LblMessage.Dispatcher.BeginInvoke(new ThreadStart(() => LblMessage.Content = "Processing TTS File..."));
await TTSList;
if (TTSList.Status == TaskStatus.RanToCompletion)
{
LblMessage.Dispatcher.BeginInvoke((Action)(() => LblMessage.Content = "File Completed, Now Executing Query...")); //--> This code is not working here
}
//Other code
}
private async void BtnMatching\u Click\u 1(对象发送方,RoutedEventArgs e)
{
var selectedItem=(动态)ListViewQueries.SelectedItems[0];
var myQuery=\u queryFolder[selectedItem]作为Microsoft.TeamFoundation.WorkItemTracking.Client.QueryDefinition;
DataTable dtRevision=新DataTable();
DataTable dtExportData=新DataTable();
var TTSList=Task.Factory.StartNew(()=>TTSProcessing(TTSFileName));
LblMessage.Content=“正在处理TTS文件…”;
//LblMessage.Dispatcher.BeginInvoke(新的ThreadStart(()=>LblMessage.Content=“正在处理TTS文件…”);
等待TTSList;
if(TTSList.Status==TaskStatus.RanToCompletion)
{
LblMessage.Dispatcher.BeginInvoke((操作)(()=>LblMessage.Content=“文件已完成,正在执行查询…”);//-->此代码在此处不起作用
}
//其他代码
}
我想在TTSList任务完成后更新LblMessage标签。记住(其他代码意味着在IF块之后还有许多其他代码)。
谢谢。您是否尝试在
BeginInvoke
上设置断点?是RanToCompletion
还是其他原因(因此没有标签更新)?顺便说一句,使用InvokeAsync
@Sinatr:Yes我设置了两个断点;一个在RANTO完成,另一个在行动中。首先,当TTSList完成时,它会点击RanToCompletion,但当其他代码完成时,它会点击另一个(操作)。您真的需要最后一个BeginInvoke吗?您已经在GUI线程上?请提供有关您的问题的最小、完整和可验证的示例。此代码不需要Dispatcher更新GUI-至少在该位置