日期:2014-05-17  浏览次数:21202 次

c#winform多线程假死(不能拖动窗口,窗口未响应)问题,在线等
public delegate void treeinvoke(int i);
        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            Console.WriteLine("AAA");
            System.Threading.Thread th = new System.Threading.Thread(new System.Threading.ThreadStart(this.startupdate));
            th.IsBackground = true;
            th.Start();
            Console.WriteLine("BBB");
        }

        private void startupdate()
        {
            Console.WriteLine("CCC");
            this.BeginInvoke(new treeinvoke(this.UpdateTreeView), 0);
            Console.WriteLine("DDD");

        }

        private void UpdateTreeView(int j)
        {

            try
            {
                Console.WriteLine("EEE");
                Thread.Sleep(5000);
                Console.WriteLine("FFF");
            }
            catch (Exception ex)
            {

            }

        }


winform中,为什么运行点击button1的时候,会出现假死?不是异步执行的吗?为什么非要等执行完Thread.Sleep(5000);后才可以拖动窗口?