c# invoke回调函数

来源:互联网 发布:联通网络加速器 编辑:程序博客网 时间:2024/05/20 11:50
    public partial class Form1 : Form    {        //textBox1输入框 textBox3显示框 button1发送按钮        //方法顺序button1_Click->DoTask1->DowriteTextBox1->WriteText1->WriteText        private delegate void WriteTextBox(char ch); //定义委托        private WriteTextBox writeTextBox1;  //声明委托        private delegate void WriteTextBoxCallback();//声明委托,以实现回调机制        private WriteTextBoxCallback writeTexBox1Callback;//操作文本1的回调        public Form1()        {            InitializeComponent();            writeTexBox1Callback = new WriteTextBoxCallback(DowriteTextBox1);        }        private void DowriteTextBox1()        {            textBox1.Clear();            textBox1.Refresh();            writeTextBox1 = new WriteTextBox(WriteText1);            WriteText(writeTextBox1);        }        private void WriteText1(char ch)        {            textBox1.AppendText(ch + "\r");        }        private void WriteText(WriteTextBox wMethod)        {            string strdata = textBox2.Text;            for (int i = 0; i < strdata.Length; i++)            {                wMethod(strdata[i]);                DateTime now = DateTime.Now;                while (now.AddMilliseconds(100) > DateTime.Now) { }            }        }        private void button1_Click(object sender, EventArgs e)        {            ThreadStart doTask1 = new ThreadStart(DoTask1);            Thread tskThread1 = new Thread(doTask1);            tskThread1.Start();        }        private void DoTask1()        {            textBox1.Invoke(writeTexBox1Callback);        }    }

0 0
原创粉丝点击