怎样给C# 中的QueueUserWorkItem传参
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,怎样给C# 中的QueueUserWorkItem传参,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。最近在学习citrix的xens
千家信息网最后更新 2025年01月31日怎样给C# 中的QueueUserWorkItem传参
怎样给C# 中的QueueUserWorkItem传参,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
最近在学习citrix的xenserver6.2的源代码,发现多处用到System.Threading命名空间下的ThreadPool.QueueUserWorkItem方法:
public static bool QueueUserWorkItem(WaitCallback callBack, object state);
publicstaticbool QueueUserWorkItem(WaitCallback callBack);
参数WaitCallback 本身是一个delegate,它在System.Threading命名空间中的定义如下:
[ComVisible(true)]public delegate void WaitCallback(object state);
那该如何给QueueUserWorkItem传参呢?以下是我遇到的一些方式:
1,直接传delegate。(不明白object o去了哪里?)
ThreadPool.QueueUserWorkItem(delegate{ for (int i = 0; i < 20 && TargetNode.Nodes.Count == 0; i++) { Thread.Sleep(100); } MainWindowCommandInterface.Invoke(delegate { TargetNode.Expand(); });});
2,直接传方法名。
ThreadPool.QueueUserWorkItem(WaitForReboot, connection);
private void WaitForReboot(object o){}
3,用delegate构造一个WaitCallback。
ThreadPool.QueueUserWorkItem(new WaitCallback(delegate(Object o){ ClientFillRectangle(0, 0, DesktopSize.Width, DesktopSize.Height, Color.Black);}), null);
4,用含一个object类型的方法Connect构造一个WaitCallback。
ThreadPool.QueueUserWorkItem(new WaitCallback(Connect), new KeyValuePair(vncClient, null));
private void Connect(object o){}
5,WaitCallback类型的delegate。
ThreadPool.QueueUserWorkItem((WaitCallback)delegate(object o){ // Sleep a short time before closing the splash Thread.Sleep(500); Program.Invoke(Program.MainWindow, Program.CloseSplash);});
6,直接传Lambda表达式。
ThreadPool.QueueUserWorkItem(o =>{ Program.Invoke(Program.MainWindow, () => { PerformStorageSystemScan(); if (systemsAfter.Count > systemsBefore.Count) { // the new item should be selected. comboBoxStorageSystem.SelectedItem = systemsAfter.Find(ss => !systemsBefore.Contains(ss)); comboBoxStorageSystem.DroppedDown = true; } });});
关于怎样给C# 中的QueueUserWorkItem传参问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。
方法
问题
C#
更多
空间
类型
帮助
解答
易行
简单易行
内容
参数
小伙
小伙伴
方式
源代码
知识
篇文章
行业
表达式
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
栖霞游戏软件开发公司电话
数据库实现随机组合查询
arcgis许可管理服务器
路由器的虚拟服务器有什么用
python数据库引擎
家里网络安全性低怎么解决
沈阳数据库新闻
连队网络安全情况工作情况
菲律宾软件开发扣护照
曙光服务器安全网卡
济南五媒网络技术有限公司
小区三维模型设计软件开发
数据库的管理方向
深圳米氧互联网科技有限公司
ssh帆软数据库
excel数据库 xml
数据库alwayson迁移
爬虫可以转行网络安全工程师吗
app软件开发得多少钱
北京惠普服务器维修技术虚拟主机
绝地求生2未来之役服务器怎么换
瑞星杀毒服务器
仕航软件开发有限公司怎么样
浙江网络技术服务案例
公安网络安全治理
软件开发代码保护虚拟化部署
无线网络技术种类
南京网络安全上市公司
第五人格服务器不同可以联机吗
数据库在防疫中的使用