当前位置: 首页 > news >正文

国外哪些网站做产品推广比较好/seo外链建设的方法

国外哪些网站做产品推广比较好,seo外链建设的方法,网站在线留言如何做,做网站 经济诈骗一、 本文将解决什么问题? 本文将解决:在主线程绑定了数据源的前提下,工作线程改变数据源,数据源无法及时更新的问题。 二、问题是如何出现的? UI控件属于UI线程。所有的绑定关系,是没办法穿透线程的。所以,在子线程中…

一、 本文将解决什么问题?

 

本文将解决:在主线程绑定了数据源的前提下,工作线程改变数据源,数据源无法及时更新的问题。

 

二、问题是如何出现的?

 

UI控件属于UI线程。所有的绑定关系,是没办法穿透线程的。所以,在子线程中改变数据源的步骤,必须要‘回到UI线程’来进行。

当然,这与要避免在UI线程里进行耗时操作 的理念并不冲突。我们只在改变数据时回UI线程,切记。

 

三、问题代码

1. MainWindow.xaml:我在主窗体里存在以下这个控件

 1 <telerik:RadGridView x:Name="rgvSendHist" Margin="10,8,10,41" Style="{StaticResource RadGridViewClean}" EnableColumnVirtualization="True" EnableRowVirtualization="True" IsReadOnly="True" Grid.Row="1" SelectionChanged="rgvSendHist_SelectionChanged">
 2                         <telerik:RadGridView.Columns>
 3                             <telerik:GridViewDataColumn DataMemberBinding="{Binding DataSend}" Header="数据包发送内容" Width="3*"/>
 4                             <telerik:GridViewDataColumn DataMemberBinding="{Binding RecLength,Mode=OneWay}" Header="返回包长度" Width="3*"/>
 5                             <telerik:GridViewDataColumn DataMemberBinding="{Binding SuccStatus,Mode=OneWay}"  Header="是否成功" Width="3*"/>
 6                         </telerik:RadGridView.Columns>7 </telerik:RadGridView>

2. MainWindow.xaml.cs: 我在这里进行了绑定。

1 ObservableCollection<TaskOfMany> aMultiTaskList = new ObservableCollection<TaskOfMany>();
2 
3 this.rgvTaskList.ItemsSource = aMultiTaskList;

3.MainWindow.xaml.cs: 我在这里通过线程对aMultiTaskList进行了改变。

1 foreach(TaskOfMany aTaskOfMany in aMultiTaskList)
2 {
3     new Task(() =>
4     {
5         aTaskOfMany.StartScan();
6     }).Start();
7 }    

4.aTaskOfMany.StartScan内部:

1   this.TaskRunningStatus = TaskRunningStatusEnum.检测中;

 

此时,这个变化根本无法同步到控件上。

 

四、解决方案

在aTaskOfMany.StartScan内部改变值时,使用以下语句,回到UI线程:

1 Application.Current.Dispatcher.Invoke((Action)(() =>
2 {
3     TaskRunningStatus = TaskRunningStatusEnum.检测中;
4 }));

根据需要,你也可以使用BeginInvoke。至此,问题解决。

------------------------------------------------------------------------------------------------------------------------

分割线

------------------------------------------------------------------------------------------------------------------------

 

对于大多数人来说,使用了以上的解决方案,你的问题就已经解决了。但是,对我来说,以上的方案并没有生效,让我一度怀疑连‘回到UI线程’这个解决方案也解决不了我的问题。

经过定位,我发现问题出在了我对线程最大数量的控制上

1 ThreadPool.SetMaxThreads(10, 10);

设置了这句之后,貌似会影响invoke的创建(因为不能发起新线程了),所以就算用dispatcher回UI线程,也不能马上生效。。。

 

感谢群里的尚哥、三台等大神。真心感谢。

 

2017-5-10 10:27

 

转载于:https://www.cnblogs.com/Soviet/p/6834670.html

http://www.lbrq.cn/news/1236241.html

相关文章:

  • 上海网站建设专业公司排名/百度股市行情上证指数
  • 郑州网站维护/成年学校培训班
  • 商丘做网站的公司/网络整合营销方案ppt
  • 网站制作公司前景/湘潭网站定制
  • 凡科网做网站教程/自媒体怎么赚钱
  • java做网站需要什么/推广方式
  • 建设网站入不入无形资产/seo综合查询工具有什么功能
  • 网站流量图怎么做的/郑州计算机培训机构哪个最好
  • 内容转载的网站怎么做/腾讯广告联盟官网
  • 网站建设开发工具/武汉seo
  • 做游戏网站/百度网页翻译
  • 刷网站跳出率/免费的推广平台
  • 哪一款软件可以自己做网站/关键词指数
  • ae/新乡seo顾问
  • 西部网站邮箱登录/微信指数查询
  • 如何做视频网站的会员代理/今天晚上19点新闻联播直播回放
  • 巴彦淖尔网站制作/网络公司网络推广服务
  • seo 网站优化/网络优化公司哪家好
  • 网站注册管理策划方案/站长统计app网站
  • 深圳 赢客创想网络技术股份有限公司 网站建设/关键词seo排名
  • 网站建设开发怎么选专业/友情链接怎么交换
  • 郑州网站推广招聘/百度免费推广方法
  • python怎么做抢课网站/电商网站销售数据分析
  • wordpress 集赞功能/西安百度关键词优化
  • 网站建设建网站/搜索引擎免费登录入口
  • 网站 自助建站/产品推广营销
  • 制作网站软件下载/2022社会热点事件及看法
  • 上海网站开发制/行业关键词一览表
  • 建设银行纪检监察网站首页/企业qq怎么申请
  • 做淘客需要用的网站/网站建设小程序开发
  • Corrosion2靶机练习笔记
  • LangGraph认知篇-Persistence 持久化
  • linux2.6 和 unix-v6 源码实验
  • USB Device(VID_1f3a_PID_efe8) 驱动叹号
  • 【AI】AIService(基本使用与指令定制)
  • [创业之路-528]:技术成熟度曲线如何指导创业与投资?