private void ClientJobInfo_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
        {
            ClientJobInfo clientJobInfo = sender as ClientJobInfo;

            if (e.PropertyName == nameof(clientJobInfo.JobStatus) ||
                e.PropertyName == nameof(clientJobInfo.Message))
            {
                this.SocketClient.sendDataAsync(clientJobInfo.ServerInfo.TokenId, System.Text.Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(new NotifyJobStatusUpdatedEvent()
                {
                    JobId     = clientJobInfo.JobId,
                    JobStatus = clientJobInfo.JobStatus,
                    Message   = clientJobInfo.Message
                })));
            }
        }
        public void executeJob(Guid jobId, string functionKey, ServerInfo serverInfo)
        {
            ClientJobInfo clientJobInfo = new ClientJobInfo();

            clientJobInfo.JobId           = jobId;
            clientJobInfo.CreatedDateTime = DateTime.Now;
            clientJobInfo.ServerInfo      = serverInfo;
            this.ClientJobInfoObservableCollection.Add(clientJobInfo);
            clientJobInfo.ExceptionObject     = null;
            clientJobInfo.JobStatus           = JobStatus.Dispatched;
            clientJobInfo.Message             = "已接受工作。";
            clientJobInfo.LastUpdatedDateTime = DateTime.Now;
            switch (functionKey)
            {
            case "123456":
                System.Threading.Thread.Sleep(3000);
                break;
            }
            clientJobInfo.LastUpdatedDateTime = DateTime.Now;
            clientJobInfo.JobStatus           = JobStatus.Succeed;
            clientJobInfo.Message             = "工作完成。";
        }