WPF 精修篇 非UI进程后台更新UI进程

-
<Grid>
-
<Grid.RowDefinitions>
-
<RowDefinition Height="11*"/>
-
<RowDefinition Height="29*"/>
-
</Grid.RowDefinitions>
-
<StackPanel Orientation="Horizontal" Margin="0" VerticalAlignment="Center">
-
<Label>开始数据</Label>
-
<TextBox x:Name="beginText" HorizontalAlignment="Left" Height="31" TextWrapping="Wrap" Text="100" VerticalAlignment="Top" Width="100"/>
-
<Label>结束数据</Label>
-
<TextBox x:Name="endText" HorizontalAlignment="Left" Height="31" TextWrapping="Wrap" Text="1000000000" VerticalAlignment="Top" Width="100"/>
-
<Button x:Name="button" Content="开始" HorizontalAlignment="Center" VerticalAlignment="Center" Width="75" Click="Button_Click"/>
-
</StackPanel>
-
<StackPanel Margin="0" Grid.Row="1">
-
<TextBlock x:Name="odd" TextWrapping="Wrap" Text="奇数数量:"/>
-
<TextBlock x:Name="even" TextWrapping="Wrap" Text="偶数数量:"/>
-
</StackPanel>
-
</Grid>
-
private int oddcount =0;
-
private int evencount =0;
-
public void Make(int from ,int to)
-
{
-
for (int i = from; i < to; i++)
-
{
-
if (i % 2 == 0)
-
{
-
evencount++;
-
}
-
else
-
{
-
oddcount++;
-
}
-
}
-
}
-
private void Button_Click(object sender, RoutedEventArgs e)
-
{
-
int from=0;
-
int to = 0;
-
if(int.TryParse(beginText.Text,out from)&&int.TryParse(endText.Text,out to) )
-
{
-
button.IsEnabled = false;
-
ThreadPool.QueueUserWorkItem(_ =>
-
{
-
Make(from, to);
-
Dispatcher.BeginInvoke(new Action(() =>
-
{
-
odd.Text = "奇数数量:" + oddcount;
-
even.Text = "偶数数量:" + evencount;
-
button.IsEnabled = true;
-
}));
-
-
});
-
-
}
-
-
}
-
Dispatcher.BeginInvoke(new Action(() =>
-
{
-
//UI线程
-
}));
WPF 精修篇 非UI进程后台更新UI进程的更多相关文章
- WPF 精修篇 数据绑定 更新通知
原文:WPF 精修篇 数据绑定 更新通知 开始更新一点有意思的了 首先 数据绑定 其中之一 Element 绑定 看例子 <Window x:Class="WpfApplicatio ...
- WPF 精修篇 用户控件
原文:WPF 精修篇 用户控件 增加用户控件 数据绑定还是用依赖属性 使用的事件 就委托注册一下 public delegate void ButtonClick(object b,EventArgs ...
- WPF 精修篇 依赖属性
原文:WPF 精修篇 依赖属性 依赖属性使用场景 1. 希望可在样式中设置属性. 2. 希望属性支持数据绑定. 3. 希望可使用动态资源引用设置属性. 4. 希望从元素树中的父元素自动继承属性值. 5 ...
- WPF 精修篇 WPF 使用ActiveX
原文:WPF 精修篇 WPF 使用ActiveX WPF 实现远程桌面功能 首先使用 开发人员命令提示 进入 自己的项目文件根目录下 输入 aximp C:\windows\System32\msts ...
- WPF 精修篇 调用Win32Api
原文:WPF 精修篇 调用Win32Api 栗子是 调用WIn32API 让窗口最前 后台代码 [DllImport("user32.dll")] private static e ...
- WPF 精修篇 动态资源
原文:WPF 精修篇 动态资源 动态资源 使用 DynamicResource 关键字 静态 就是 StaticResource 原则上是 能用静态就用静态 动态会让前台界面压力很大~ 动态资源引用 ...
- Android开之在非UI线程中更新UI
当在非UI线程中更新UI(程序界面)时会出现例如以下图所看到的的异常: 那怎样才干在非UI线程中更细UI呢? 方法有非常多种.在这里主要介绍三种: 第一种:调用主线程mHandler的post(Run ...
- WPF 精修篇 数据触发器
原文:WPF 精修篇 数据触发器 数据触发器 可以使用Binding 来绑定控件 或者数据源 来触发相关动作 举栗子 <Window.Resources> <Style Target ...
- WPF 精修篇 属性触发器
原文:WPF 精修篇 属性触发器 属性触发器是通过 某个条件触发改变属性 通过无代码实现功能 <Style TargetType="{x:Type Label}"> ...
随机推荐
- 在js中==和===的区别
“==”:叫相等运算符 “===”:叫严格运算符 它们两有什么区别呢? == :表示值相等则都为true ===:表示 不仅要值相等,双方类型也要相等才为true 例子如下: js代码如下: // “ ...
- python中优雅的杀死线程
上一篇博客中,杀死线程采用的方法是在线程中抛出异常 https://www.cnblogs.com/lucky-heng/p/11986091.html, 这种方法是强制杀死线程,但是如果线程中涉 ...
- 10. [mmc subsystem] host(第四章)——host实例(sdhci-msm说明)
一.说明 sdhci-msm是指高通的mmc host,其使用了标准SDHC标准.故可以使用前面说的<host(第二章)--sdhci>和<host(第三章)--sdhci-pltf ...
- 用eclipse开发Android,用Genymotion测试时报错adb发生错误
每当我要运行安卓程序时,控制台就会报出 The connection to adb is down, and a severe error has occured. You must restart ...
- jmeter引用jar包的3种方式
示例 实现对登录密码进行MD5加密 pom文件依赖 <!-- https://mvnrepository.com/artifact/commons-codec/commons-codec --& ...
- 第五周周二练习:实验 5 Spark SQL 编程初级实践
1.题目: 源码: import java.util.Properties import org.apache.spark.sql.types._ import org.apache.spark.sq ...
- RSA介绍
RSA加密算法是一种非对称加密算法.在公开密钥加密和电子商业中RSA被广泛使用. 公钥(Public Key)与私钥(Private Key)是通过一种算法得到的一个密钥对(即一个公钥和一个私钥),公 ...
- 学习:反调试之ZwQueryInformationProcess
SetUnhandledExceptionFilter触发条件:1.当程序有异常,且没相应的处理 2.没有人进行反调试,满足这两个条件的时候,就会其中传输的参数(实则就是一个异常处理函数) 来进行处理 ...
- Excel-查找函数
1.VLOOKUP函数 该函数的语法规则如下: VLOOKUP(lookup_value,table_array,col_index_num,range_lookup) 多表关联查询---vlooku ...
- Mysql查询数据库状态及信息
使用MySQL时,需要了解当前数据库的情况,例如当前的数据库大小.字符集.用户等等.下面总结了一些查看数据库相关信息的命令 1:查看显示所有数据库 mysql> show databases; ...