Esempio n. 1
0
 private void Server_FormClosing(object sender, FormClosingEventArgs e)
 {
     if (ButtonStop.Enabled)
     {
         MessageBox.Show("请先停止监听!");
         e.Cancel = true;
     }
     else
     {
         if (ServerListener != null)
         {
             ButtonStop.PerformClick();    //引发 btn_Stop 的Click事件
         }
     }
 }
Esempio n. 2
0
        void RemoveThread(int Id)
        {
            object
                forLock = new object();

            lock (forLock)
            {
                if (MainThreads.ContainsKey(Id))
                {
                    string
                        Msg = string.Format("Thread# {0} has been removed (IsAlive=\"{1}\", ThreadState=\"{2}\")", Id, MainThreads[Id].IsAlive, MainThreads[Id].ThreadState);

                    MainThreads.Remove(Id);

                    if (MainThreads.Count == 0)
                    {
                        if (ButtonStop.InvokeRequired)
                        {
                            ButtonStop.Invoke(new MethodInvoker(delegate { ButtonStop.Enabled = false; }));
                        }
                        else
                        {
                            ButtonStop.Enabled = false;
                        }

                        if (ButtonDoIt.InvokeRequired)
                        {
                            ButtonDoIt.Invoke(new MethodInvoker(delegate { ButtonDoIt.Enabled = true; }));
                        }
                        else
                        {
                            ButtonDoIt.Enabled = true;
                        }
                    }

                    if (ListBoxMainThreadsLog.InvokeRequired)
                    {
                        ListBoxMainThreadsLog.Invoke(new MethodInvoker(delegate { ListBoxMainThreadsLog.Items.Add(Msg); }));
                    }
                    else
                    {
                        ListBoxMainThreadsLog.Items.Add(Msg);
                    }
                }
            }
        }