Оказывается, вы можете создать уникальный столбец с несколькими столбцами в базе данных доступа MS, но это немного сумасшествие, если вы хотите сделать это через графический интерфейс. Существует также ограничение; вы можете использовать только 10 столбцов на индекс.
В любом случае, вот как вы создаете уникальный уникальный столбец с несколькими столбцами в базе данных доступа MS.
Вот как это должно выглядеть:
Это скорее всего потому, что у вас либо нет метода отмены, либо внутри DoWork()
есть подпроцессы, которые все еще работают, когда вы вызываете Cancel()
. Как сказал @Damien_The_Unbeliever, отмена - это совместная задача.
Когда вы вызываете _cancelTokenSource.Cancel()
, если вы не зарегистрировали функцию обратного вызова, все, что происходит, это то, что булево значение isCancellationRequested
установлено в true, тогда метод DoWork()
отвечает за его просмотр и остановку его выполнения. свой. Здесь есть недостаток, хотя, как вы, вероятно, можете сказать, что если у вас есть трудоемкий цикл, выполняющийся в задаче DoWork()
при вызове Cancel()
, то этот цикл должен завершить итерацию, прежде чем сможет проверить значение из isCancellationRequested
, что может привести к зависанию.
Способ обойти это - вставить функции обратного вызова отмены в метод DoWork()
, см. здесь и затем зарегистрировать их в токене, чтобы при вызове метода Cancel()
ВСЕ из задачи, выполняющиеся в фоновом режиме, останавливаются, не ожидая их.
Надеюсь, это поможет!