IAsyncAction myCheck = null;
myCheck = ThreadPool.RunAsync(
(IAsyncAction source) =>
{
MyFirstTask();
});
myCheck.Completed = new AsyncActionCompletedHandler(
(IAsyncAction TaskCompletionSource, AsyncStatus status) =>
{
System.Windows.Deployment.Current.Dispatcher.BeginInvoke(
() =>
{
MySecondTask();
});
});
在MyFirstTask()
:我收到了文件列表,我将使用LongListMultiSelector
向他们展示屏幕。
在MySecondTask()
中:我定义了一个属性FileCount
,它返回从MyFirstTask()
获得的文件计数。基于属性FileCount
和文件计数,如果文件计数为零(0),我在屏幕上显示“无项目”文本,否则我将显示所有项目。
在MyFirstTask()
完全获取所有文件之前,MySecondTask()
执行两次,因此在第一次执行时,我们得到文件计数值零(0)。由于这个原因,我的UI更新了“没有项目”文本...但是在1-2秒之后,MySecondTask()
再次触发FileCount
属性并且文件数量正确,我可以看到所有文件屏幕和文本“没有项目”将消失。
请注意:只有当存在大量文件时才会出现此问题,因此对于较少的文件,此问题不存在......(因此,我强烈怀疑这是由于线程之间的系统化问题。)
有什么建议吗?