使用了委托。

    当程序执行完毕之后,要过段时间才会终止。如果中途又点了下载,程序就会弹出一个错误,应为进程中的一些东东还未释放,所以还要改进线程的同步阻塞问题~。

//1. 使用一个委托

        private delegate void SafeSetList(string str);
        private delegate void SafeDispose();
        ///<summary>
        ///2. 
        ///</summary>
        ///
        //2.1
        private void onSafeSetValue(String str)
        {
            //2.1.1 InvokeRequired,是存在于控件之上的
            if(formm.listBox1.InvokeRequired){
                SafeSetList call = delegate(string str2) { formm.listBox1.Items.Add(str2); };
                formm.Invoke(call, str);
            }else{
                formm.listBox1.Items.Add(str);
            }
        }
        //2.2
        private void onSafeDispose()
        {
            if(formm.InvokeRequired)
            {
                SafeDispose call = delegate() { formm.Dispose(); };
                formm.Invoke(call);
            }else{
                formm.Dispose();
            }
        }