线程调用BeginInvoke
线程异步调用
Thread objThread = new Thread(new ThreadStart(delegate
{
Dispatcher.BeginInvoke(new Action(() =>--解决调用线程必须为 STA,因为许多 UI 组件都需要的问题
{
ReportViewer rp = ReportingServiceHelper.GetReportView(reportName, null, true, true);
rp.RefreshReport();
CurrentView = ReportingServiceHelper.GetFormHost<ReportViewer>(rp);
}));
}));
objThread.Start();
http://blog.csdn.net/yl2isoft/article/details/11711833
http://www.cnblogs.com/nokiaguy/archive/2008/07/13/1241817.html
http://blog.csdn.net/razorluo/article/details/7814670
http://www.111cn.net/net/160/42786.htm
http://www.sufeinet.com/thread-3707-1-1.html
调用控件的BeginInvoke实现异步
/// <summary>
/// 线程调用BeginInvoke
/// </summary>
private void ThreadBeginInvoke()
{
listBox1.Items.Add("--begin--");
new Thread(() =>
{
Thread.CurrentThread.Name = "ThreadBeginInvoke";
Thread.Sleep(10000);
string temp = "Before!";
listBox1.BeginInvoke(new Action(() =>
{
this.listBox1.Items.Add(temp + ":" + Thread.CurrentThread.Name);
}));
temp += "After!";
}).Start();
Thread.Sleep(1000);
listBox1.Items.Add("--end--");
}
委托实现异步
public delegate int AddOp(int x, int y);
class Program
{
static void Main(string[] args)
{
Console.WriteLine("******* 委托异步线程
两个线程“同时”工作 *********");
//显示主线程的唯一标示
Console.WriteLine("调用Main()的主线程的线程ID是:{0}.", Thread.CurrentThread.ManagedThreadId);
//将委托实例指向Add()方法
AddOp pAddOp = new AddOp(Add);
//开始委托次线程调用。委托BeginInvoke()方法返回的类型是IAsyncResult,
//包含这委托指向方法结束返回的值,同时也是EndInvoke()方法参数
IAsyncResult iftAR = pAddOp.BeginInvoke(10, 10, null, null);
Console.WriteLine(""nMain()方法中执行其他任务........"n");
int sum = pAddOp.EndInvoke(iftAR);
Console.WriteLine("10 + 10 = {0}.", sum);
Console.ReadLine();
}
//求和方法
static int Add(int x, int y)
{
//指示调用该方法的线程ID,ManagedThreadId是线程的唯一标示
Console.WriteLine("调用求和方法 Add()的线程ID是:
{0}.", Thread.CurrentThread.ManagedThreadId);
//模拟一个过程,停留5秒
Thread.Sleep(5000);
int sum = x + y;
return sum;
}
}
}
线程调用BeginInvoke的更多相关文章
- C# 跨线程调用控件
在C# 的应用程序开发中, 我们经常要把UI线程和工作线程分开,防止界面停止响应. 同时我们又需要在工作线程中更新UI界面上的控件, 下面介绍几种常用的方法 阅读目录 线程间操作无效 第一种办法:禁 ...
- 跨线程调用控件之MethodInvoker
原文:http://www.cnblogs.com/cm8448940/archive/2008/07/10/1240045.html 使用到两个控件,一个按钮button1,一个标签label1. ...
- c#中跨线程调用windows窗体控件
c#中跨线程调用windows窗体控件解决. 我们在做winform应用的时候,大部分情况下都会碰到使用多线程控制界面上控件信息的问题.然而我们并不能用传统方法来做这个问题,下面我将详细的介绍.首先来 ...
- c#中如何跨线程调用windows窗体控件
c#中如何跨线程调用windows窗体控件? 我们在做winform应用的时候,大部分情况下都会碰到使用多线程控制界面上控件信息的问题.然而我们并不能用传统方法来做这个问题,下面我将详细的介绍.首 ...
- c#中如何跨线程调用windows窗体控件?
我们在做winform应用的时候,大部分情况下都会碰到使用多线程控制界面上控件信息的问题.然而我们并不能用传统方法来做这个问题,下面我将详细的介绍.首先来看传统方法: public partial c ...
- C#线程调用带参数的方法
在 .NET Framework 2.0 版中,要实现线程调用带参数的方法有两种办法.第一种:使用ParameterizedThreadStart.调用 System.Threading.Thread ...
- C# 跨线程调用form控件技巧及byte[]与string型相互转换
跨线程调用form控件技巧 private delegate void MethodSocket(object obj);//使用托管 ss = "OK"; this.BeginI ...
- 【转载】C# 跨线程调用控件
转自:http://www.cnblogs.com/TankXiao/p/3348292.html 感谢原作者,转载以备后用 在C# 的应用程序开发中, 我们经常要把UI线程和工作线程分开,防止界面停 ...
- C# 跨线程调用控件的4中方法
原文:C# 跨线程调用控件 在C# 的应用程序开发中, 我们经常要把UI线程和工作线程分开,防止界面停止响应. 同时我们又需要在工作线程中更新UI界面上的控件, 下面介绍几种常用的方法 阅读目录 线 ...
随机推荐
- postman之变量
前言:postman可以设置(环境变量)和(全局变量) (环境变量):环境变量只能在选择的环境中使用,可以有多组,常用在设置URL和密码当中 (全局变量):只能有一组,整个环境都可以应用 [环境变量] ...
- 墙裂推荐!2020Android阿里&腾讯&百度&字节&美团校招面试汇总
基本情况 2021届硕士生,Android开发岗 此文主要是2020年年初春招实习的面试和正式校招面试经验汇总,最终校招拿到了腾讯,百度,美团等offer 主要包括阿里4面,腾讯实习4面和校招4面,字 ...
- Longhorn 云原生分布式块存储解决方案设计架构和概念
内容来源于官方 Longhorn 1.1.2 英文技术手册. 系列 Longhorn 是什么? 目录 1. 设计 1.1. Longhorn Manager 和 Longhorn Engine 1.2 ...
- Servlet基本知识
Servlet基本知识 1.IDEA创建第一个Servlet程序xing 这里说明如何使用 IDEA Ultimate 2020.1.3版本来新建第一个web程序.参考 MoonChasing 1.1 ...
- 关于yii2学习笔记:gii的使用
yii2中的gii无疑是非常强大的代码生成工具,以下是我学习使用gii的一些技巧,跟大家分享一下. 以User为例,在数据库中,创建user表. /*Navicat MySQL Data Transf ...
- leaflet 的 marker 弹框 iframe 嵌套代码
A页面 嵌套 B页面的代码 主要处理 leaflet 的 marker 的 popopen, marker的点击的显示/隐藏 pop 会导致pop中的页面的内容,消失,不在页面中,导致b ...
- leaflet 动态线渲染
可以采用leaflet插件 leaflet-ant-path ... <script src="js/leaflet-ant-path.js" type="text ...
- 09.SpringMVC之类型转换
一. 类型转换器 前端传入的值,从表单中传入的值,都是字符串或者是字符串数组的形式传入的,在后端需要进行手动的转换类型,然后才能正确的使用. 框架一般对常见的数据类型的转换进行了封装提供,如字符串转换 ...
- hive表导出到mysql报错
Exception in thread "main" java.lang.NoClassDefFoundError: org/json/JSONObject hadoop@hado ...
- Map 综述(一):彻头彻尾理解 HashMap
转载自:https://blog.csdn.net/justloveyou_/article/details/62893086 摘要: HashMap是Map族中最为常用的一种,也是 Java Col ...