⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 talker.cs

📁 一个聊天程序
💻 CS
字号:
namespace RemotingChat
{
    using System;
	using System.Threading;
	using System.Collections;
    /// <summary>
    ///    Summary description for Talker.
    /// </summary>
	public class Talker 
	{
		private ObjectList messages = new ObjectList();	
		private Chat c;
		bool isActive = true;
		private String name;
		private Thread t=null;
		public Talker(Chat c,String name) {
		    this.c = c;
		    this.name=name;
		    t=new Thread(new ThreadStart(this.run));
			t.Start();
		 }
		 public bool addMessage(Message e){
		    if(!isActive)
		 	return false;
		    messages.Add(e);
		    if(t.ThreadState==ThreadState.Suspended)
			{
				t.Resume();
			}
			return true;
		 }
		 public void run() 
		 {
		     while(true)
			 {
				try 
				{
		 			if(messages.Count==0)
		 				t.Suspend();
					c.chatNotify((Message)messages[0]);
		 			messages.RemoveAt(0);
				 } 
				catch (ArgumentOutOfRangeException e) 
				{
		 			Console.WriteLine("postMessage: " + e);
				}
				catch (Exception e) 
				{
		 			//Some Error when more than one Client is connected.
					Console.WriteLine("Removing "+ name + "\n" + e);
		 			isActive=false;
		 			t.Abort();
				}
		 	 }
		 }
		 
		public String getChatterName() {
		   return name;
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -