自动处理跨线程的相关操作-及异步调用方式
2013-09-26 19:31
246 查看
------------------------------------------------------------------------------------
--------------------自动处理跨线程的相关操作-及异步调用方式----------------------------
#region 异步执行方法 /// <summary>
/// 异步调用方式
/// </summary>
void AsyncMethod(object argObj = null)
{
_delegateMethod1 = ExecByAsync;
_delegateMethod1.BeginInvoke(argObj, DoneCallBack, _delegateMethod1);
}
DelegateMethod _delegateMethod1;//实例化委托
delegate bool DelegateMethod(object argObj);//声明委托 /// <summary>
/// 回调函数
/// </summary>
void DoneCallBack(IAsyncResult asyncResult)
{
_delegateMethod1.EndInvoke(asyncResult);
} /// <summary>
/// 异步执行的方法
/// </summary>
bool ExecByAsync(object argObj)
{
//do something..
return true;
} #endregion /// <summary>
/// 更新进度(自动处理跨线程的相关操作)
/// </summary>
private void Setlbl(object argMsg)
{
if (lblDealWithProgress.InvokeRequired)
{
var callBack = new InvokeCallBack1(Setlbl);
lblDealWithProgress.Invoke(callBack, new[] { argMsg });
}
else
lblDealWithProgress.Text = argMsg.ToString();
} private delegate void InvokeCallBack1(object argMsg);
-------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------
--------------------自动处理跨线程的相关操作-及异步调用方式----------------------------
#region 异步执行方法 /// <summary>
/// 异步调用方式
/// </summary>
void AsyncMethod(object argObj = null)
{
_delegateMethod1 = ExecByAsync;
_delegateMethod1.BeginInvoke(argObj, DoneCallBack, _delegateMethod1);
}
DelegateMethod _delegateMethod1;//实例化委托
delegate bool DelegateMethod(object argObj);//声明委托 /// <summary>
/// 回调函数
/// </summary>
void DoneCallBack(IAsyncResult asyncResult)
{
_delegateMethod1.EndInvoke(asyncResult);
} /// <summary>
/// 异步执行的方法
/// </summary>
bool ExecByAsync(object argObj)
{
//do something..
return true;
} #endregion /// <summary>
/// 更新进度(自动处理跨线程的相关操作)
/// </summary>
private void Setlbl(object argMsg)
{
if (lblDealWithProgress.InvokeRequired)
{
var callBack = new InvokeCallBack1(Setlbl);
lblDealWithProgress.Invoke(callBack, new[] { argMsg });
}
else
lblDealWithProgress.Text = argMsg.ToString();
} private delegate void InvokeCallBack1(object argMsg);
-------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------
相关文章推荐
- 线程相关——HandlerThread、IntentService、ResultReceiver:结果接收者、AsyncTask:异步任务、Android中处理线程间通信的方式
- 使用ASP.NET AJAX异步调用Web Service和页面中的类方法(10):服务器端和客户端数据类型的自动转换:以XML方式序列化数据、小结
- 异步调用WebService抛出ArgumentException"异步处理过程中出现错误。未完成的多个异步并发操作需要唯一的状态对象"
- C# 采用系统委托的方式处理线程内操作窗体控件(转载)
- C# 采用系统委托的方式处理线程内操作窗体控件
- 全面总结Android中线程的异步处理方式
- 已经决定半年后继续这个项目. JavaScript同步调用异步的处理方式也确定了下来.
- spring mvc异步操作处理,注解方式
- xcode 中异步调用 WebService 获得大数据量的处理方式
- C#构建多线程应用程序(1) —— 使用委托来自动创建次线程以实现异步方法的调用
- 关于For循环中进行异步操作索引不正确的处理方式
- C# 采用系统委托的方式处理线程内操作窗体控件
- 将业务及数据库相关操作放入单独线程处理
- C# 采用系统委托的方式处理线程内操作窗体控件
- C# 采用系统委托的方式处理线程内操作窗体控件
- 关于线程切换与异步调用相关的几句话----摘自《Windows内核情景分析》
- C# 采用系统委托方式处理线程内操作窗体控件
- 使用ASP.NET AJAX异步调用Web Service和页面中的类方法(10):服务器端和客户端数据类型的自动转换:以XML方式序列化数据、小结
- 委托(delegate)的三种调用方式:同步调用,异步调用,异步回调(转载)
- [转]通用异步线程调用模式--通知线程