关于线程的参数、“返回值”、及线程的中止

2016-01-29 12:28 1 1 收藏

关于线程的参数、“返回值”、及线程的中止,关于线程的参数、“返回值”、及线程的中止

【 tulaoshi.com - ASP.NET 】

 

关于线程的参数(2.0)、“返回值”、及线程的中止


1.线程的参数:
有时候会想向辅助线程传递些信息,这里需要用到ParameterizedThreadStart 委托

示例:

        private void btRunThread_Click(object sender, EventArgs e)

        {

            Thread t = new Thread(new ParameterizedThreadStart(this.ThreadRun));

            t.Start(100);

        }

 

        private void ThreadRun(object o)

        {

            this.lbCompleted.Invoke((MethodInvoker)delegate { this.lbCompleted.Text = System.Convert.ToString(o); });

        }

 

2.通过代理可以大致实现类似功能,示例:

    class Program

    {

        static void Main(string[] args)

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com)

        {

            ThreadClass tc = new ThreadClass(new MyDlg(DlgMethod));

            Thread thread = new Thread(new ThreadStart(tc.ThreadRun));

            Console.WriteLine("second thread start");

            thread.Start();

            thread.Join();

            Console.WriteLine("second thread completed");

            Console.Read();       

        }


        private static void DlgMethod(int i)

        {

            Console.WriteLine("Second Thread Result:{0}", i);

        }

    }

 

    public delegate void MyDlg(int i);

 

    class ThreadClass

    {

        private MyDlg myDlg;

 

        public ThreadClass(MyDlg pDlg)

        {

            this.myDlg = pDlg;

        }

 

        public void ThreadRun()

        {

            int total = 0;

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com)

            for (int i = 0; i < 100; i++)[next]

            {

                total += i;

            }

 

            if (myDlg != null)

            {

                myDlg(total);

            }

        }

来源:https://www.tulaoshi.com/n/20160129/1486270.html

延伸阅读
第 3 部分 内容: 条件变量 pthread_cond_wait() 小测验 初始化和清除 等待 发送信号和广播 工作组 队列 data_control 代码 调试时间 工作组代码 代码初排 有关清除的注重事项 创建工作 threadfunc() join_threads() 结束语 参考资...
标签: Web开发
       今天有位朋友问我如何在Data Access Application Block中得到存储的过程的返回值,我才发现自己以前写的文章中确实没提到这方面的问题,现在来补充一下,具体的解决方法如下: 1、首先建立一个具有返回值的存储过程,作为示例,我就简单的建一个存储过程,如下: create proc test ( &n...
我们在写Remoting程序或者其他的一些应用程序的时候难免要和线程打交道,.Net使我们很容易就可以创建一个线程,但是它提供的创建线程和启动线程的方法没有明显的提供参数,假如我们要用线程来启动类里面一个带参数的方法该怎么办?下面就简单的介绍如何使用.NET提供的丰富的框架来实现这个功能。为了可以生动详细的介绍整个过程,我建立下面的一...
标签: Web开发
客户端文件,请修改文件名为:test_2.htm html body xmlhttp异步的例子: URL: input name=a type=textbox value="test_s.asp" style="width:600px" input onclick= "getXML()" type= "button" value= "得到源代码" input name=geti type=textbox value="10000" input onclick= "if(xh && xh.responseText) {alert(xh.responseT...
服务器程序利用线程技术响应客户请求已经司空见惯,可能您认为这样做效率已经很高,但您有没有想过优化一下使用线程的方法。该文章将向您介绍服务器程序如何利用线程池来优化性能并提供一个简单的线程池实现。 线程池的技术背景 在面向对象编程中,创建和销毁对象是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源。...

经验教程

322

收藏

56
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部