class DB { public void Add(object obj) { } public void Save() { } } class XXX { public void Work() { CancellationTokenSource cancelTokenSource = new CancellationTokenSource(); Task.Run(() => { Start(cancelTokenSource.Token); }); Thread.Sleep(100); cancelTokenSource.Cancel(); } public void Start(CancellationToken token) {
DB dB = new DB(); for (int i = 0; i < 100000000; i++) { dB.Add(i); } if (token.IsCancellationRequested) return;//Код компилятора dB.Save(); if (token.IsCancellationRequested) return;//Код кодера } }