首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

加上线程的事件就不能正常运行,如何会呢

2013-11-14 
加上线程的事件就不能正常运行,怎么会呢?namespace 事件驱动01{public partial class Form1 : Form{public

加上线程的事件就不能正常运行,怎么会呢?


namespace 事件驱动01
    {
    
    public partial class Form1 : Form
    {
        public event EventHandler doEvents;

        public Form1()
        {
            InitializeComponent();
        }
         private void button1_Click(object sender, EventArgs e)
        {
            runEvents();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            //加上多线程操作时就不能执行
           System.Threading.Thread th2;
           th2 = new Thread(new ThreadStart(runEvents));
           th2.Start();
        }

        private void runEvents()
        {
            myEvent eX = new myEvent("Ok");

            if (doEvents != null)
            {
                doEvents(this, eX);
            }
        }
    }

    public class myEvent : EventArgs
    {
        public string EventName { get; set; }
        
        public myEvent(string prName )
        {
            this.EventName = prName;
        }
    }
}





        }
    }
}




namespace 事件驱动01
{
    static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form2());
        }
    }
}


不使用th1,可以执行,加上就不能执行,什么原因呢 多线程
[解决办法]
谁知道你要如何处理 doEvents?

是不是帖子中间丢了一段代码?


如果处理程序在子线程中执行的,如果要访问控件,记得使用 Ctrl.Invoke 或者 Ctrl.BeginInvoke。

热点排行