diff --git a/软件系统服务端模版/FormServerWindow.cs b/软件系统服务端模版/FormServerWindow.cs
index 2c1f870..99550a9 100644
--- a/软件系统服务端模版/FormServerWindow.cs
+++ b/软件系统服务端模版/FormServerWindow.cs
@@ -78,6 +78,8 @@ namespace 软件系统服务端模版
private void Form1_Load(object sender, EventArgs e)
{
+ //初始化默认的委托对象
+ ActionInitialization();
//初始化日志工具
RuntimeLogHelper = new SoftLogHelper()
{
@@ -142,6 +144,40 @@ namespace 软件系统服务端模版
#endregion
+ #region 界面基础方法集
+ ///
+ /// 初始化委托
+ ///
+ private void ActionInitialization()
+ {
+ ActionUserInterfaceMessageRender = new Action(m =>
+ {
+ UserInterfaceMessageRender(m);
+ });
+ }
+
+ private Action ActionUserInterfaceMessageRender = null;
+ ///
+ /// 往界面添加消息的方法,此方法是线程安全的,无论处于哪个线程都可以调用该方法
+ ///
+ /// 新增的数据内容
+ private void UserInterfaceMessageRender(string msg)
+ {
+ if (IsWindowShow)
+ {
+ if (textBox1.InvokeRequired)
+ {
+ textBox1.BeginInvoke(ActionUserInterfaceMessageRender, msg);
+ }
+ else
+ {
+ textBox1.AppendText(msg + Environment.NewLine);
+ }
+ }
+ }
+
+ #endregion
+
#region 菜单逻辑块
private void 启动服务器ToolStripMenuItem_Click(object sender, EventArgs e)
{
@@ -677,20 +713,12 @@ namespace 软件系统服务端模版
private void Net_socket_server_MessageAlerts(string object1)
{
- //同上的方法,此处处理数据时处于后台线程
- if (IsWindowShow && IsHandleCreated)
- {
- BeginInvoke(new Action(() =>
- {
- textBox1.AppendText(object1 + Environment.NewLine);
- }));
- }
+ UserInterfaceMessageRender(object1 + Environment.NewLine);
}
private void Net_socket_server_ClientOffline(AsyncStateOne object1, string object2)
{
- Net_socket_clients_change(DateTime.Now.ToString("MM-dd HH:mm:ss ") + object1._IpEnd_Point.Address.ToString() + ":" +
- object1.LoginAlias + " " + object2);
+ UserInterfaceMessageRender(DateTime.Now.ToString("MM-dd HH:mm:ss ") + object1._IpEnd_Point.Address.ToString() + ":" + object1.LoginAlias + " " + object2);
}
private void Net_socket_server_ClientOnline(AsyncStateOne object1)
@@ -705,21 +733,10 @@ namespace 软件系统服务端模版
//发送客户端的初始化数据
net_socket_server.Send(object1, CommonHeadCode.MultiNetHeadCode.初始化数据, json.ToString());
//触发上下线功能
- Net_socket_clients_change(DateTime.Now.ToString("MM-dd HH:mm:ss ") + object1._IpEnd_Point.Address.ToString() + ":" +
- object1.LoginAlias + " 上线");
+ UserInterfaceMessageRender(DateTime.Now.ToString("MM-dd HH:mm:ss ") + object1._IpEnd_Point.Address.ToString() + ":" + object1.LoginAlias + " 上线");
}
-
- private void Net_socket_clients_change(string str)
- {
- if (IsWindowShow && IsHandleCreated)
- {
- BeginInvoke(new Action(() =>
- {
- textBox1.AppendText(str + Environment.NewLine);
- }));
- }
- }
+
private void Net_socket_server_AllClientsStatusChange(string data)
{