c#还有一点不太明白,既然开启了线程为何还要委托呢?
既然开启了线程为何还要委托呢?,开启线程本身不就是委托吗?为何委托要显示声明呢?Threadthread=newThread(newThreadStart(getAllR...
既然开启了线程为何还要委托呢?,开启线程本身不就是委托吗?为何委托要显示声明呢?
Thread thread = new Thread(new ThreadStart(getAllRows));
thread.IsBackground = true;
thread.Start();
比如说以上这段代码,getAllRows就是一个普通方法,根本没用委托.
但是,我不太明白,这样也行,为何还要用委托,用委托的作用,好处在在哪里,这里不太懂,望解答. 展开
Thread thread = new Thread(new ThreadStart(getAllRows));
thread.IsBackground = true;
thread.Start();
比如说以上这段代码,getAllRows就是一个普通方法,根本没用委托.
但是,我不太明白,这样也行,为何还要用委托,用委托的作用,好处在在哪里,这里不太懂,望解答. 展开
5个回答
展开全部
看来一下其他人的回答,都有问题或者错误。
你没有理解delegate(委托)的概念,.Net的委托本质上就是指向函数的指针,只不过这种指针是经过封装后类型安全的。委托和线程是两个不同的概念,线程是动态的,委托就是一个或一组内存地址,是静态的。线程执行时如果遇到了指向函数的指针就执行这个函数。
.Net为了方便编程,给委托赋予了两种方式以供调用线程来执行,即同步和异步方式,它们分别通过Invoke和BeginInvoke来开启。Invoke就是同步执行,由调用线程来执行,而BeginInvoke则开启了一个后台线程来执行delegate所指向的函数,这个后台线程和调用线程之间属于异步执行方式。实际上有了delegate这个概念,你在编程时就可以不用直接使用Thread类来开辟新的线程了,因为微软替你实现了。
建议你好好看看MSDN,这些概念不是一两天就能消化的,有问题再问。
你没有理解delegate(委托)的概念,.Net的委托本质上就是指向函数的指针,只不过这种指针是经过封装后类型安全的。委托和线程是两个不同的概念,线程是动态的,委托就是一个或一组内存地址,是静态的。线程执行时如果遇到了指向函数的指针就执行这个函数。
.Net为了方便编程,给委托赋予了两种方式以供调用线程来执行,即同步和异步方式,它们分别通过Invoke和BeginInvoke来开启。Invoke就是同步执行,由调用线程来执行,而BeginInvoke则开启了一个后台线程来执行delegate所指向的函数,这个后台线程和调用线程之间属于异步执行方式。实际上有了delegate这个概念,你在编程时就可以不用直接使用Thread类来开辟新的线程了,因为微软替你实现了。
建议你好好看看MSDN,这些概念不是一两天就能消化的,有问题再问。
2013-07-15
展开全部
涉及UI的更新部份不能在线程中进行,比如你不能在线程中向一个ListBox添加或删除它的Item(当然,像你所说的getAllRows这种只是获取控件的内容这个是没问题的),这时你要更新ListBox就需要用委托的方式让UI线程自己去更新。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先,线程类Thread需要一个方法代表这个新线程的入口,这个方法不需要返回值。而委托类似函数指针,指向具体的方法。所以线程初始化时,带入个具体的函数对象,但声明时需用委托指代
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
01
//声明变量并初始化
int i = 3; //整型
print("i");02
const float PI = 3.14f; //浮点型
print("PI");03
char c='a'; //字符及字符串
print('a');
string str = "a123";
print("str");
str = 1 + "";
print("str");04
bool ifSec = true; //布尔值
print("ifSec");
bool ifSec = false;
print("ifSec");End
免责声明:
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用了线程,自然就不用委托了
委托最大的好处就是,它处理完以后会有回调事件,然后进行处理
而Thread一旦开启,就无法再控件他了
委托最大的好处就是,它处理完以后会有回调事件,然后进行处理
而Thread一旦开启,就无法再控件他了
更多追问追答
追问
那我当初问的,登陆比如登陆100万个账号,取其信息采集,1个线程显然太慢了,所以要多线程,但是你当初说要用委托,是什么意思,不太懂... 望解惑,谢谢
追答
委托也是一个线程。。。和Thread类似,但他可以有回调事件。。。仅此而已
来自:求助得到的回答
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询