using SnapshotWinFormsApp.Application; using SnapshotWinFormsApp.Repository; using SnapshotWinFormsApp.Tools; namespace SnapshotWinFormsApp; public partial class MainForm : Form { private readonly DbSqlServer _sqlServerDB; private readonly SnapshotUserInfoApplication _snapshotUserInfoApplication; private CancellationTokenSource? _cts; public MainForm(DbSqlServer sqlServerDB) { _sqlServerDB = sqlServerDB; _snapshotUserInfoApplication = new SnapshotUserInfoApplication(sqlServerDB); InitializeComponent(); logTxt.AppendText("初始化完成\r\n"); logTxt.AppendText("日志文件夹:" + Logs.Path() + "\r\n"); } private void OkBtn_Click(object sender, EventArgs e) { _cts?.Cancel(); _cts = new CancellationTokenSource(); var token = _cts.Token; Task.Run(() => _snapshotUserInfoApplication.ImportSnapshotUserInfoAsync(AddLog, token)); } private void AddLog(string msg) { this.Invoke((EventHandler)delegate { this.logTxt.AppendText(msg + "\r\n"); Logs.Note(msg); }); } private void CancelBtn_Click(object sender, EventArgs e) { _cts?.Cancel(); } }