public void Start() { //็ๆไปฃ็ WebApp.Start(_servicesUrl); Task.Factory.StartNew(() => { while (true) { Thread.Sleep(1000); try { ArrayList userIDs = new ArrayList(); foreach (KeyValuePair <string, User> p in SignalRHub.Usermananger.users) { userIDs.Add(p.Key); } if (userIDs.Count > 0) { MessageService.MessageServiceSoapClient client = new MessageService.MessageServiceSoapClient(); object result = client.GetMessage(string.Join(",", (string[])userIDs.ToArray(typeof(string))), null, 1); DataTable dt = ((DataSet)result).Tables[0];//new DBMessage().GetMessage((string[])userIDs.ToArray(typeof(string))); if (dt.Rows.Count > 0) { ArrayList messageIDs = new ArrayList(); HubContext = (GlobalHost.ConnectionManager.GetHubContext <SignalRHub>() as IHubContext); List <Message> ls = StaticMethod <Message> .FillModel(dt); foreach (Message message in ls) { var messageForwarder = MessageForwarderFactory.CreateMessageForwarder(message.MessageType); messageForwarder.MessageProcess(message, HubContext); messageIDs.Add(message.MessageID.ToString()); } client.UpdateMessageStatus(2, string.Join(",", (string[])messageIDs.ToArray(typeof(string)))); } } } catch (Exception ex) { } } }); }