MainForm.cs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. using SnapshotWinFormsApp.Application;
  2. using SnapshotWinFormsApp.Repository;
  3. using SnapshotWinFormsApp.Tools;
  4. namespace SnapshotWinFormsApp;
  5. public partial class MainForm : Form
  6. {
  7. private readonly DbSqlServer _sqlServerDB;
  8. private readonly SnapshotUserInfoApplication _snapshotUserInfoApplication;
  9. private CancellationTokenSource? _cts;
  10. public MainForm(DbSqlServer sqlServerDB)
  11. {
  12. _sqlServerDB = sqlServerDB;
  13. _snapshotUserInfoApplication = new SnapshotUserInfoApplication(sqlServerDB);
  14. InitializeComponent();
  15. logTxt.AppendText("³õʼ»¯Íê³É\r\n");
  16. logTxt.AppendText("ÈÕÖ¾Îļþ¼Ð:" + Logs.Path() + "\r\n");
  17. }
  18. private void OkBtn_Click(object sender, EventArgs e)
  19. {
  20. _cts?.Cancel();
  21. _cts = new CancellationTokenSource();
  22. var token = _cts.Token;
  23. Task.Run(() => _snapshotUserInfoApplication.ImportSnapshotUserInfoAsync(AddLog, token));
  24. }
  25. private void AddLog(string msg)
  26. {
  27. this.Invoke((EventHandler)delegate
  28. {
  29. this.logTxt.AppendText(msg + "\r\n");
  30. Logs.Note(msg);
  31. });
  32. }
  33. private void CancelBtn_Click(object sender, EventArgs e)
  34. {
  35. _cts?.Cancel();
  36. }
  37. }