Creating a Small Helper Class to Safely Handle CancellationTokenSource Cancel and Dispose
The article explains the distinction between Cancel() and Dispose() on CancellationTokenSource in Unity async code. It highlights that disposing a CancellationTokenSource does not set the field to null, which can cause ObjectDisposedException on subsequent calls. A small helper class is proposed to safely manage cancellation and disposal, especially when using CancelAfter() and linked token sources.
- ▪Cancel() only sends a cancellation request, while Dispose() releases internal resources of the CancellationTokenSource.
- ▪After Dispose() is called, the field still holds a reference, so a later Cancel() may throw ObjectDisposedException.
- ▪Using CancelAfter() or CreateLinkedTokenSource() requires proper disposal to avoid resource leaks.
- ▪The article provides a helper class that ensures Cancel() and Dispose() are performed safely without leaving a disposed object in the field.
Opening excerpt (first ~120 words) tap to expand
try { if(localStorage) { let currentUser = localStorage.getItem('current_user'); if (currentUser) { currentUser = JSON.parse(currentUser); if (currentUser.id === 3992439) { document.getElementById('article-show-container').classList.add('current-user-is-article-author'); } } } } catch (e) { console.error(e); } GameDevToolLab Posted on Jun 26 Creating a Small Helper Class to Safely Handle CancellationTokenSource Cancel and Dispose #csharp #dotnet #unity3d #canellationtokensource Introduction When writing async code in Unity, you often end up working with CancellationToken for loading, networking, Addressables, screen transitions, timeouts, and so on. The object you usually create for that is CancellationTokenSource, but it is surprisingly easy to handle it incorrectly.
…
Excerpt limited to ~120 words for fair-use compliance. The full article is at DEV.to (Top).