using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;
using System.Drawing;
using System.Windows.Forms;
namespace Common
{
public delegate void _Bgz_OnUpdateUI(object sender, MessageEvents e);
public class MessageEvents : EventArgs
{
public string Msg;
public string Control;
public MessageEvents(string msg, string control)
{
Msg = msg;
Control = control;
}
}
public class ThreadView
{
#region 跨线程窗体控件操作
//private void UpdateUI(object sender, MessageEvents e)
//{
// lock (this)
// {
// switch (e.Control)
// {
// case "rtbReceiveMessage":
// this.rtbReceiveMessage.AppendText(e.Msg + "\r\n");
// this.rtbReceiveMessage.ScrollToCaret();
// break;
// case "rtbReceiveMessageApp":
// this.rtbReceiveMessage.AppendText(e.Msg);
// this.rtbReceiveMessage.ScrollToCaret();
// break;
// case "statusBarPanel1":
// default:
// this.statusBarPanel1.Text = e.Msg;
// break;
// }
// }
//}
#endregion
public _Bgz_OnUpdateUI OnUpdateUIEventDelegate;
private void OnUpdateUIEvent(object sender, MessageEvents e)
{
if (OnUpdateUIEventDelegate != null) OnUpdateUIEventDelegate(sender, e);
}
private Form _form;
private int _threadSleep = 100;
public ThreadView(Form form)
{
this._form = form;
}
public ThreadView(Form form, int threadsleep)
{
this._form = form;
this._threadSleep = threadsleep;
}
public void ShowState(string msg, string control)
{
try
{
MessageEvents e = new MessageEvents(msg, control);
Thread ss = new Thread(new ParameterizedThreadStart(InvokeState));
ss.Start(e);
Thread.Sleep(this._threadSleep);
}
catch { }
}
private void InvokeState(object obj)
{
try
{
System.EventArgs e = (MessageEvents)obj;
object[] pList = { this, e };
this._form.BeginInvoke(new MessageEventsHandler(OnUpdateUIEvent), pList);
}
catch (Exception ex)
{
}
}
private delegate void MessageEventsHandler(object sender, MessageEvents e);
}
}