不知道这个问对不对哦 第一次提问方法
public void get_all(string s_host)
{
}按钮
private void button2_Click(object sender, EventArgs e)
{
// Thread thread = new ThreadStart(get_all(string s_host))
// Thread thread = new ThreadStart(get_all())
thread.IsBackground = true;
thread.Start(5); get_all(str);
}大意就是这样 get_all 这个方法想多线程 传递str进去。
在线等
public void get_all(string s_host)
{
}按钮
private void button2_Click(object sender, EventArgs e)
{
// Thread thread = new ThreadStart(get_all(string s_host))
// Thread thread = new ThreadStart(get_all())
thread.IsBackground = true;
thread.Start(5); get_all(str);
}大意就是这样 get_all 这个方法想多线程 传递str进去。
在线等
解决方案 »
- 问一个关于静态类的问题
- sql2000不支持的nvarchar(max),有什么办法解决吗?
- 关于访问类实例化对象
- C# 从excel取数据的问题
- 郁闷一天了,datalist控件不能触发事件?期待高手中的高手
- 请教用Sqldataadapter.update(DataTable)插入一条记录后后怎么得到该datatable对应数据库表自增的字段值
- C#的DataGrid还有这样的问题?????
- 用C#怎么得到当日所在月的月头日期与月尾日期?
- C# 服务程序 播放声音
- 如何生成强名程序集的附属程序集?
- richTextBox1怎样绑定到数据表或dataGridView中的字段?
- monthCalendar1 当前日期默认显示的红色矩形。 怎么设置为红圈,椭圆的。
改为:public void get_all(object host)
{
string strHost = (string)host;
// ...
}Thread thread = new ThreadStart(get_all);
thread.Start(5);
错误 1 “get_all”的重载均与委托“System.Threading.ThreadStart”不匹配换了ParameterizedThreadStart 好像是单个传递参数什么的哦 语句是通过了 ,
Thread th = new Thread(new ParameterizedThreadStart(get_all));不过后面还有各种错误,原来可以顺利执行的程序 虽然卡UI,传递值为空 等错误,我在好好理解下,感谢1楼深夜解答了
就是逐个调用 Myfuntion1,2,...一般线程函数的声明和启动Thread t = new Thread(new ThreadStart(MyFunction));
t.Start();
正是调用了没有参数和返回值的 委托函数 ThreadStart
其中的参数MyFunction 是 这个委托函数中的一员.很明显 这样无法传参数和返回值,那我们该怎么办?答案就在委托 的BeginInvoke() 方法上, BeginInvoke() 也是(异步)启动一个新线程.
例如
MyDelegate dele = new MyDelegate (MyFunction);
dele.BeginInvoke(10,"abcd");
void MyFunction(int count, string str);
可以实现参数的传递. 如何收集线程函数 的 返回值?
与 BeginInvoke 对应 有个 EndInvoke 方法,而且运行完毕返回 IAsyncResult 类型的返回值.
这样我们可以这样收集 线程函数的 返回值MyDelegate dele = new MyDelegate (MyFunction);
IAsyncResult ref = dele.BeginInvoke(10,"abcd");
....
int result = dele.EndInvoke(ref); <----收集 返回值
int MyFunction(int count, string str); <----带参数和返回值的 线程函数