zoukankan
html css js c++ java
线裎里面传递参数问题解决方案
/**/
/*
需要明确Form知道线程结束后要干什么。
举个例子:
比如我需要在线程结束之后,刷新Form上Label的内容。
这样,可以定义一个delegate,让线程结束之后回调刷新Label这个方法。
以下是示例代码,Class1也可以是Form这个类。
*/
class
Class1
{
[STAThread]
static
void
Main(
string
[] args)
{
Class1 c
=
new
Class1();
ThreadWrapper tw
=
new
ThreadWrapper(
new
Callback(c.PrintResult),
100
);
//
线程开始
tw.Start();
Console.ReadLine();
}
//
打印结果,用于回调
public
void
PrintResult(
int
result)
{
Console.WriteLine(
"
Result:
"
+
result.ToString());
}
}
//
回调代理
public
delegate
void
Callback(
int
n);
class
ThreadWrapper
{
public
readonly
Thread mThread;
private
Callback callback;
private
int
n;
//
参数1:用于回调的代理
//
参数2:需要计算的值
public
ThreadWrapper(Callback callback,
int
arg)
{
this
.callback
=
callback;
ThreadStart myThreadDelegate
=
new
ThreadStart(
this
.Run);
this
.mThread
=
new
Thread(myThreadDelegate);
this
.n
=
arg;
}
//
线程的对外接口
public
void
Start()
{
this
.mThread.Start();
}
//
需要在线程里调用的方法
public
void
Run()
{
int
result
=
this
.Caculate(
this
.n);
callback(result);
}
private
int
Caculate(
int
n)
{
return
n
*
100
;
}
}
查看全文
相关阅读:
wireshark 实用过滤表达式(针对ip、协议、端口、长度和内容)
32:从1到n整数中1出现的次数
31:连续子数组的最大和
30:最小的K个数
29:数组中出现次数超过一半的数字
28:字符串的排列
27:二叉搜索树与双向链表
26:复杂链表的复制
25:二叉树中和为某一个定值的路径
24:二叉搜索树的后序遍历序列
原文地址:https://www.cnblogs.com/jhtchina/p/353871.html
最新文章
Ansible 常用模块(一)
pycharm 皮肤主题及个性化设置
centos7 设置中文
js 表单内容使用ajax以json格式混合提交
python 执行文件时传参
virtualenv -- python虚拟沙盒
python 时间操作
python多线程使用
python 使用多线程进行压力测试
pdfkit安装使用
热门文章
mysql 导入导出.sql文件
PHP对象在内存堆栈中的分配
搞不清FastCgi与PHP-fpm之间是个什么样的关系?
当遇到难题时的思路,解决问题的思路
巧用git bash
发光二极管的应用 -显示器中图像颜色的显示
通过VLD扩展分析PHP opcode
linux内存使用计算方式
Linux系统内存占用90%以上 ?
TOP命令各个参数代表意义详解
Copyright © 2011-2022 走看看