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

📄 servertalker.cs

📁 一个聊天程序
💻 CS
字号:
namespace RemotingChat
{
    using System;
	using System.Threading;
	using System.Collections;
    /// <summary>
    ///    Summary description for ServerTalker.
    /// </summary>
    /// Threading 
	public class ServerTalker  
	{

		private ObjectList messages = new ObjectList();	
		private ChatServerImpl cs;
		private Thread t=null;

		public ServerTalker(ChatServerImpl cs, String name) {
			this.cs = cs;
			//Send a welcome message
			messages.Add(new 
			   Message("***", name + " just connected***"));
			t=new Thread(new ThreadStart(this.run));
			t.Start();

		}

		public bool addMessage(Message e){
		   if(cs==null) {
		     Console.WriteLine("Server reference is null");
		     return false;
		   }
			t.Resume();
		   messages.Add(e);
		   return true;
		}

		public void run() 
		{
		    while(true)
			{
		        try 
				{
					if(messages.Count==0)
						t.Suspend();
					if(t.ThreadState==ThreadState.Running)
					{
						Console.WriteLine("First Element {0}",messages[0]);
						cs.postMessage((Message)messages[0]);
						messages.RemoveAt(0);
					}
				} 
				catch (Exception e)
				{
					Console.WriteLine("Remote Error: Server down?"+ e);
					cs = null;
					t.Abort();
		        }
			}

		}
	}
}

⌨️ 快捷键说明

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