Fixed a bug in Dotween after returning to the pool of CancellationToken.Register

master
hadashiA 2023-09-20 17:35:04 +09:00
parent 64f7eec4e9
commit be8dbe8804
1 changed files with 4 additions and 2 deletions

View File

@ -148,6 +148,7 @@ namespace Cysharp.Threading.Tasks
Tween tween; Tween tween;
TweenCancelBehaviour cancelBehaviour; TweenCancelBehaviour cancelBehaviour;
CancellationToken cancellationToken; CancellationToken cancellationToken;
CancellationTokenRegistration cancellationRegistration;
CallbackType callbackType; CallbackType callbackType;
bool canceled; bool canceled;
@ -215,7 +216,7 @@ namespace Cysharp.Threading.Tasks
if (cancellationToken.CanBeCanceled) if (cancellationToken.CanBeCanceled)
{ {
cancellationToken.RegisterWithoutCaptureExecutionContext(x => result.cancellationRegistration = cancellationToken.RegisterWithoutCaptureExecutionContext(x =>
{ {
var source = (TweenConfiguredSource)x; var source = (TweenConfiguredSource)x;
switch (source.cancelBehaviour) switch (source.cancelBehaviour)
@ -376,6 +377,7 @@ namespace Cysharp.Threading.Tasks
{ {
TaskTracker.RemoveTracking(this); TaskTracker.RemoveTracking(this);
core.Reset(); core.Reset();
cancellationRegistration.Dispose();
switch (callbackType) switch (callbackType)
{ {