private void LongTimeRoutineEvent(object sender, DoWorkEventArgs e) { //реализация, которая очень долго выполняется if (this.FLongTimeRoutineHandler != null) { //извлекаем параметры, которые нужны для исполнения потоковой функции InputWorkerParameters WorkerParameters = (InputWorkerParameters)e.Argument; //запускаем потоковую функцию this.FLongTimeRoutineHandler(WorkerParameters); } }
private void SyncProfilesWorkerHandler(InputWorkerParameters WorkerParameters) { // try // { // using (var msSqlDbService = new DatabaseProxy("SCME.CentralDatabase")) // { // var localProfiles = _sqLiteDbService.GetProfilesSuperficially(_mmeCode); // var centralProfiles = msSqlDbService.GetProfilesSuperficially(_mmeCode); // if(!_sqLiteDbService.GetMmeCodes().ContainsKey(_mmeCode)) // _sqLiteDbService.InsertMmeCode(_mmeCode); // // List<MyProfile> deletingProfiles; // List<MyProfile> addingProfiles; // // if (_sqLiteDbService.Migrate()) // { // deletingProfiles = localProfiles; // addingProfiles = centralProfiles; // } // else // { // deletingProfiles = localProfiles.Except(centralProfiles, new MyProfile.ProfileByVersionTimeEqualityComparer()).ToList(); // addingProfiles = centralProfiles.Except(localProfiles, new MyProfile.ProfileByVersionTimeEqualityComparer()).ToList(); // } // // foreach (var i in deletingProfiles) // _sqLiteDbService.RemoveProfile(i, _mmeCode); // // foreach (var i in addingProfiles) // { // i.DeepData = msSqlDbService.LoadProfileDeepData(i); // _sqLiteDbService.InsertUpdateProfile(null, i, _mmeCode); // } // // return; // } // using (var centralDbClient = new CentralDatabaseServiceClient()) // { //// Thread.Sleep(5000); //// throw new Exception(); // // var serverProfiles = centralDbClient.GetProfileItemsByMme(_mmeCode); // serverProfiles.ForEach(m => m.NextGenerationKey = m.ProfileKey); // // SaveProfiles(serverProfiles); // } // } // catch (Exception ex) // { // throw new Exception(string.Format("Error while syncing profiles from local database with a master: {0}", ex.Message)); // } }
private void SyncResultsWorkerHandler(InputWorkerParameters WorkerParameters) { try { var unsendedDevices = _resultsService.GetUnsendedDevices(); using (var centralDbClient = new CentralDatabaseServiceClient()) { foreach (var unsendedDevice in unsendedDevices) { var sended = centralDbClient.SendResultToServer(unsendedDevice); if (sended) { _resultsService.SetResultSended(unsendedDevice.Id); } } } } catch (Exception ex) { throw new Exception(string.Format("Error while syncing results from local database with a master:{0}", ex.Message)); } }
public void Run(InputWorkerParameters Parameters) { //запуск продолжительно выполняющегося кода с передачей для его исполнения входных параметров Parameters this.FWorker.RunWorkerAsync(Parameters); }