Thread t1 = new Thread(new ThreadStart(Show('hello')));
t1.Start();
private void Show(string str)
{
MessageBox.Show(str);
}
为什么这样不行,它说一定要用什么 方法 哦,是不是不能含有参数的函数啊?
好像下面就行哦:
Thread t1 = new Thread(new ThreadStart(Show()));
t1.Start();
private void Show()
{
MessageBox.Show(‘hello');
}
c# 多线程的小问题
线程本身由于创建和切换的开销,采用多线程不会提高程序的执行速度,反而会降低速度,但是对于频繁IO操作的程序,多线程可以有效的并发。对于包含不同任务的程序,可以考虑每个任务使用一个线程。这样的程序在设计上相对于单线程做所有事的程序来说,更为清晰明了,比如生产、消费者问题。在实际的开发中对于...
C# 多线程数据混乱的问题
多线程操作中,各个线程如果是同时运行的话,他们的执行先后顺序是不确定的,多线程就这样,即使它偶然出现了跟你预期的顺序一样,那也只是巧合罢了 而且你多线程里有都是用了textBox1这个资源,他们会抢用,按理说你应该在各个线程中先把这个资源锁住,用完了以后再释放 ...
...也不抛异常。连try也不进。比如在线程里面执行webclit 或者点用_百 ...
多线程调试问题多多,也不容易调试,建议加日志输出重要参数或用catch捕获异常来调试代码。用log4net输出日志就是个不错的选择
C#网络编程与多线程的疑问,求指点
1、这种情况下,多线程当然是要把最占用时间的步骤,以及循环的部分,放到线程里。2、其他线程的代码无法直接操作UI线程里的控件。需要使用委托。你具体的需求我不是很清楚。但是我在这里假设一个例子:比如我有个买票的程序,必须每隔2秒,去服务器请求门票的剩余数量。显示在界面上。界面上还有诸如“售...
C#多线程 如何锁定静态类中静态方法的参数?
调用方法前用 System.Threading.Semophore 加线程锁,调用结束后释放。
C#多线程问题:线程间操作无效: 从不是创建控件“label4”的线程访问...
一楼正解 你是写在GuidProc这个类里面的,这个是不行的.必须写在Form的类中或者子类中.就是说:this.Invoke中的this必须指的是一个窗体对象.补充:原因:声明的委托需要参数.private delegate void SetTextDelegate(string value);解决:修改代码.if (this.InvokeRequired){ SetLabelText d = new Set...
c#编写了一个多线程程序但是出现40个线程同时运行就自动关闭程序但如果...
楼上正解,不过也可以自己写个线程池来管理和调度你的线程,你这种情况就是一下子运行太多线程的过,可以让线程以队列的形式一个一个执行,并发最好不要太多,CLR有线程管理和控制机制的,不能无限制的并发线程。
c# 创建多线程失败
因为UI控件操作不是线程安全的 如果要通过线程更改UI,需要使用invoke来做 1.在Form里写一个更改UI的函数 2.声明一个代理,这个代理可以代理这个更改UI的函数 3.函数内部 if(this.label4.invokerequied)\/\/判断是否需要invoke操作 { \/\/实例化此函数自身的代理 \/\/如果此函数有参数,需要创建一个数组,...
c# 多线程同时写数据表速度变慢的问题
一般涉及网络、磁盘读写的程序采用多线程,计算过程使用多线程尚不划算。高性能并行计算使用c#不行。如果计算量大建议使用编译性语言(推荐使用FORTURN)。 .net属于半编译性平台,效率较低。
c#传递引用对象作为参数的时候就没有必要用ref关键字,对吗
不添加ref关键字时,作为方法参数的形参与实际传入的实参实际上是两个对象,在栈中有两个地方分别保存它们的名字,假设形参叫A,实参叫B。只是引用对象保存的本来就是地址,所以这两个对象的值“恰好”指向堆中的同一个地方,假设这个地方叫C,对这两个对象的值进行修改实际上是修改C,所以都会影响到...