Here are the examples of the csharp api System.Threading.Timer.Dispose() taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.
902 Examples
19
View Source File : Edi.cs
License : MIT License
Project Creator : 0ffffffffh
License : MIT License
Project Creator : 0ffffffffh
public static bool KillEdi()
{
if (ediSvc == null)
return true;
ediSvc.WipeClientInfos();
wipeTimer.Dispose();
wipeTimer = null;
ediSvc.Close();
ediSvc = null;
return true;
}
19
View Source File : Lock.cs
License : MIT License
Project Creator : 2881099
License : MIT License
Project Creator : 2881099
public bool Refresh(int milliseconds)
{
var ret = _client.Eval(@"local gva = redis.call('GET', KEYS[1])
if gva == ARGV[1] then
redis.call('PEXPIRE', KEYS[1], ARGV[2])
return 1
end
return 0", new[] { _name }, _value, milliseconds)?.ToString() == "1";
if (ret == false) _autoDelayTimer?.Dispose(); //未知情况,关闭定时器
return ret;
}
19
View Source File : PubSub.cs
License : MIT License
Project Creator : 2881099
License : MIT License
Project Creator : 2881099
internal IDisposable Subscribe(bool psub, string[] channels, Action<string, string, object> handler)
{
if (_stoped) return new PubSubSubscribeDisposable(this, null);
channels = channels?.Distinct().Where(a => !string.IsNullOrEmpty(a)).ToArray(); //In case of external modification
if (channels?.Any() != true) return new PubSubSubscribeDisposable(this, null);
var id = Guid.NewGuid();
var time = DateTime.Now;
var regkeys = channels.Select(a => psub ? $"{_psub_regkey_prefix}{a}" : a).ToArray();
for (var a = 0; a < regkeys.Length; a++)
{
ConcurrentDictionary<Guid, RegisterInfo> dict = null;
lock (_lock) dict = _registers.GetOrAdd(regkeys[a], k1 => new ConcurrentDictionary<Guid, RegisterInfo>());
dict.TryAdd(id, new RegisterInfo(id, handler, time));
}
lock (_lock)
_cancels.TryAdd(id, regkeys);
var isnew = false;
if (IsSubscribed == false)
{
lock (_lock)
{
if (IsSubscribed == false)
{
_redisSocket = _topOwner.Adapter.GetRedisSocket(null);
IsSubscribed = isnew = true;
}
}
}
if (isnew)
{
new Thread(() =>
{
_redisSocketReceiveTimeoutOld = _redisSocket.ReceiveTimeout;
_redisSocket.ReceiveTimeout = TimeSpan.Zero;
var timer = new Timer(state =>
{
_topOwner.Adapter.Refersh(_redisSocket); //防止 IdleBus 超时回收
try { _redisSocket.Write("PING"); } catch { }
}, null, 10000, 10000);
var readCmd = "PubSubRead".SubCommand(null).FlagReadbytes(false);
while (_stoped == false)
{
RedisResult rt = null;
try
{
rt = _redisSocket.Read(readCmd);
}
catch
{
Thread.CurrentThread.Join(100);
if (_cancels.Any()) continue;
break;
}
var val = rt.Value as object[];
if (val == null) continue; //special case
var val1 = val[0].ConvertTo<string>();
switch (val1)
{
case "pong":
case "punsubscribe":
case "unsubscribe":
continue;
case "pmessage":
OnData(val[1].ConvertTo<string>(), val[2].ConvertTo<string>(), val[3]);
continue;
case "message":
OnData(null, val[1].ConvertTo<string>(), val[2]);
continue;
}
}
timer.Dispose();
lock (_lock)
{
IsSubscribed = false;
_redisSocket.ReceiveTimeout = _redisSocketReceiveTimeoutOld;
_redisSocket.ReleaseSocket();
_redisSocket.Dispose();
_redisSocket = null;
}
}).Start();
}
Call((psub ? "PSUBSCRIBE" : "SUBSCRIBE").Input(channels));
return new PubSubSubscribeDisposable(this, () => Cancel(id));
}
19
View Source File : Lock.cs
License : MIT License
Project Creator : 2881099
License : MIT License
Project Creator : 2881099
public bool Delay(int milliseconds)
{
var ret = _client.Eval(@"local gva = redis.call('GET', KEYS[1])
if gva == ARGV[1] then
local ttlva = redis.call('PTTL', KEYS[1])
redis.call('PEXPIRE', KEYS[1], ARGV[2] + ttlva)
return 1
end
return 0", new[] { _name }, _value, milliseconds)?.ToString() == "1";
if (ret == false) _autoDelayTimer?.Dispose(); //未知情况,关闭定时器
return ret;
}
19
View Source File : Lock.cs
License : MIT License
Project Creator : 2881099
License : MIT License
Project Creator : 2881099
public bool Unlock()
{
_autoDelayTimer?.Dispose();
return _client.Eval(@"local gva = redis.call('GET', KEYS[1])
if gva == ARGV[1] then
redis.call('DEL', KEYS[1])
return 1
end
return 0", new[] { _name }, _value)?.ToString() == "1";
}
19
View Source File : BingAuthorization.cs
License : MIT License
Project Creator : adrenak
License : MIT License
Project Creator : adrenak
public void Dispose() {
StopFetch();
if (m_TokenTimer != null) m_TokenTimer.Dispose();
}
19
View Source File : BingAuthorization.cs
License : MIT License
Project Creator : adrenak
License : MIT License
Project Creator : adrenak
void CreateTimer() {
if (m_TokenTimer != null)
m_TokenTimer.Dispose();
m_TokenTimer = new Timer(
new TimerCallback(OnTokenExpiredCallback),
this,
TimeSpan.FromMinutes(k_RenewTimerDuration),
TimeSpan.FromMilliseconds(-1)
);
}
19
View Source File : ThreadedAsyncOperation.cs
License : GNU General Public License v2.0
Project Creator : afrantzis
License : GNU General Public License v2.0
Project Creator : afrantzis
public void OperationThread()
{
ActivateProgressReport(activateProgress);
try {
DoOperation();
if (cancelled)
opResult = OperationResult.Cancelled;
else
opResult = OperationResult.Finished;
}
catch (Exception e) {
threadException = e;
opResult = OperationResult.CaughtException;
}
finally {
progressTimer.Dispose();
showProgressTimer.Dispose();
EndOperation();
if (useGLibIdle)
GLib.Idle.Add(delegate { OperationFinished(); return false; });
else
OperationFinished();
}
}
19
View Source File : CatalogInvalidator.cs
License : MIT License
Project Creator : ai-traders
License : MIT License
Project Creator : ai-traders
public void Dispose()
{
if (_scanTimer != null)
_scanTimer.Dispose();
}
19
View Source File : TimedCleaner.cs
License : MIT License
Project Creator : AiursoftWeb
License : MIT License
Project Creator : AiursoftWeb
public void Dispose()
{
_timer?.Dispose();
}
19
View Source File : TimedCleaner.cs
License : MIT License
Project Creator : AiursoftWeb
License : MIT License
Project Creator : AiursoftWeb
public void Dispose() => _timer?.Dispose();
19
View Source File : ProgressBar.cs
License : MIT License
Project Creator : alecgn
License : MIT License
Project Creator : alecgn
public void Dispose()
{
lock (timer)
{
disposed = true;
UpdateText(string.Empty);
timer.Dispose();
}
}
19
View Source File : GroupContentsControlViewModel.cs
License : GNU General Public License v3.0
Project Creator : alexdillon
License : GNU General Public License v3.0
Project Creator : alexdillon
void IDisposable.Dispose()
{
this.RetryTimer?.Dispose();
try
{
foreach (var msg in this.AllMessages.Items)
{
(msg as IDisposable)?.Dispose();
}
}
catch (Exception)
{
}
this.AllMessages.Clear();
}
19
View Source File : ChatsViewModel.cs
License : GNU General Public License v3.0
Project Creator : alexdillon
License : GNU General Public License v3.0
Project Creator : alexdillon
private async Task LoadGroupsAndChats(bool updateSuperIndexer = false)
{
await this.ReloadGroupsSem.WaitAsync();
var persistContext = this.PersistManager.OpenNewContext();
try
{
await this.GroupMeClient.GetGroupsAsync();
await this.GroupMeClient.GetChatsAsync();
var groupsAndChats = Enumerable.Concat<IMessageContainer>(this.GroupMeClient.Groups(), this.GroupMeClient.Chats());
if (updateSuperIndexer)
{
// Submit new Group and Chat listings to SuperIndexer to allow for background indexing if needed.
this.CacheManager.SuperIndexer.BeginAsyncTransaction(groupsAndChats);
}
foreach (var group in groupsAndChats)
{
// check the last-read message status from peristant storage
var groupState = persistContext.GroupChatStates.FirstOrDefault(g => g.GroupOrChatId == group.Id);
if (groupState == null)
{
groupState = new GroupOrChatState()
{
GroupOrChatId = group.Id,
LastTotalMessageCount = group.TotalMessageCount,
};
persistContext.GroupChatStates.Add(groupState);
}
// Code to update the UI needs to be run on the Application Dispatcher
// This is typically the case, but Timer events from ReliabilityStateMachine for
// retry-callbacks will NOT run on the original thread.
var uiDispatcher = Ioc.Default.GetService<IUserInterfaceDispatchService>();
await uiDispatcher.InvokeAsync(() =>
{
// calculate how many new messages have been added since the group/chat was last read
var unreadMessages = group.TotalMessageCount - groupState.LastTotalMessageCount;
if (unreadMessages < 0)
{
// strange errors can occur when the Group Listing lags behind the
// actual group contents. If this occurs, cancel and reload the sidebar.
this.RetryTimer = this.ReliabilityStateMachine.GetRetryTimer(() => Task.Run(() => this.LoadGroupsAndChats()));
return;
}
var existingVm = this.AllGroupsChats.Items.FirstOrDefault(g => g.Id == group.Id);
if (existingVm == null)
{
// create a new GroupControl ViewModel for this Group
var vm = new GroupControlViewModel(group)
{
GroupSelected = new RelayCommand<GroupControlViewModel>((g) => this.OpenNewGroupChat(g)),
TotalUnreadCount = unreadMessages,
};
this.AllGroupsChats.Add(vm);
}
else
{
// Update the existing Group/Chat VM
existingVm.MessageContainer = group;
existingVm.TotalUnreadCount = unreadMessages;
}
var openChatGroup = this.AllChats.FirstOrDefault(g => g.Id == group.Id);
if (openChatGroup != null)
{
// chat is open and already receiving new messages, so mark all messages as "read"
existingVm.TotalUnreadCount = 0;
groupState.LastTotalMessageCount = openChatGroup.MessageContainer.TotalMessageCount;
}
});
}
await persistContext.SaveChangesAsync();
this.PublishTotalUnreadCount();
// if everything was successful, reset the reliability monitor
this.ReliabilityStateMachine.Succeeded();
this.RetryTimer?.Dispose();
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine($"Exception in {nameof(this.LoadGroupsAndChats)} - {ex.Message}. Retrying...");
this.RetryTimer = this.ReliabilityStateMachine.GetRetryTimer(() => Task.Run(() => this.LoadGroupsAndChats()));
}
finally
{
persistContext.Dispose();
this.ReloadGroupsSem.Release();
}
}
19
View Source File : GroupContentsControlViewModel.cs
License : GNU General Public License v3.0
Project Creator : alexdillon
License : GNU General Public License v3.0
Project Creator : alexdillon
private async Task LoadMoreAsync(bool updateNewest)
{
await this.ReloadSem.WaitAsync();
try
{
ICollection<Message> results;
if (this.FirstDisplayedMessage == null || updateNewest)
{
// load the most recent messages
results = await this.MessageContainer.GetMessagesAsync();
this.CacheManager.SuperIndexer.SubmitGroupUpdate(this.MessageContainer, results);
}
else
{
// load the 20 (GroupMe default) messages preceeding the oldest (first) one displayed
results = await this.MessageContainer.GetMessagesAsync(GroupMeClientApi.MessageRetreiveMode.BeforeId, this.FirstDisplayedMessage.Id);
}
await this.UpdateDisplay(results);
// if everything was successful, reset the reliability monitor
this.ReliabilityStateMachine.Succeeded();
this.RetryTimer?.Dispose();
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine($"Exception in {nameof(this.LoadMoreAsync)} - {ex.Message}. Retrying...");
this.RetryTimer = this.ReliabilityStateMachine.GetRetryTimer(async () => await this.LoadMoreAsync(updateNewest));
}
finally
{
this.ReloadSem.Release();
}
}
19
View Source File : GroupContentsControlViewModel.cs
License : GNU General Public License v3.0
Project Creator : alexdillon
License : GNU General Public License v3.0
Project Creator : alexdillon
void IDisposable.Dispose()
{
this.Messages.Clear();
this.RetryTimer?.Dispose();
try
{
foreach (var msg in this.Messages.Items)
{
(msg as IDisposable)?.Dispose();
}
}
catch (Exception)
{
}
}
19
View Source File : GroupContentsControlViewModel.cs
License : GNU General Public License v3.0
Project Creator : alexdillon
License : GNU General Public License v3.0
Project Creator : alexdillon
private async Task LoadMoreAsync(ScrollViewer scrollViewer = null, bool updateNewest = false)
{
await this.ReloadSem.WaitAsync();
try
{
ICollection<Message> results;
if (this.FirstDisplayedMessage == null || updateNewest)
{
// load the most recent messages
results = await this.MessageContainer.GetMessagesAsync();
}
else
{
// load the 20 (GroupMe default) messages preceeding the oldest (first) one displayed
results = await this.MessageContainer.GetMessagesAsync(GroupMeClientApi.MessageRetreiveMode.BeforeId, this.FirstDisplayedMessage.Id);
}
this.UpdateDisplay(scrollViewer, results);
// if everything was successful, reset the reliability monitor
this.ReliabilityStateMachine.Succeeded();
this.RetryTimer?.Dispose();
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine($"Exception in {nameof(this.LoadMoreAsync)} - {ex.Message}. Retrying...");
this.RetryTimer = this.ReliabilityStateMachine.GetRetryTimer(async () => await this.LoadMoreAsync(scrollViewer, updateNewest));
}
finally
{
this.ReloadSem.Release();
}
}
19
View Source File : ChatsViewModel.cs
License : GNU General Public License v3.0
Project Creator : alexdillon
License : GNU General Public License v3.0
Project Creator : alexdillon
private async Task LoadGroupsAndChats()
{
await this.ReloadGroupsSem.WaitAsync();
try
{
await this.GroupMeClient.GetGroupsAsync();
await this.GroupMeClient.GetChatsAsync();
var groupsAndChats = Enumerable.Concat<IMessageContainer>(this.GroupMeClient.Groups(), this.GroupMeClient.Chats());
foreach (var group in groupsAndChats)
{
// check the last-read message status from peristant storage
var groupState = this.SettingsManager.ChatsSettings.GroupChatStates.Find(g => g.GroupOrChatId == group.Id);
if (groupState == null)
{
groupState = new ChatsSettings.GroupOrChatState()
{
GroupOrChatId = group.Id,
LastTotalMessageCount = group.TotalMessageCount,
};
this.SettingsManager.ChatsSettings.GroupChatStates.Add(groupState);
}
// Code to update the UI needs to be run on the Application Dispatcher
// This is typically the case, but Timer events from ReliabilityStateMachine for
// retry-callbacks will NOT run on the original thread.
await Avalonia.Threading.Dispatcher.UIThread.InvokeAsync(() =>
{
// calculate how many new messages have been added since the group/chat was last read
var unreadMessages = group.TotalMessageCount - groupState.LastTotalMessageCount;
if (unreadMessages < 0)
{
// strange errors can occur when the Group Listing lags behind the
// actual group contents. If this occurs, cancel and reload the sidebar.
this.RetryTimer = this.ReliabilityStateMachine.GetRetryTimer(async () => await this.LoadGroupsAndChats());
return;
}
var existingVm = this.AllGroupsChats.Items.FirstOrDefault(g => g.Id == group.Id);
if (existingVm == null)
{
// create a new GroupControl ViewModel for this Group
var vm = new GroupControlViewModel(group)
{
GroupSelected = new RelayCommand<GroupControlViewModel>(this.OpenNewGroupChat, (g) => true),
TotalUnreadCount = unreadMessages,
};
this.AllGroupsChats.Add(vm);
}
else
{
// Update the existing Group/Chat VM
existingVm.MessageContainer = group;
existingVm.TotalUnreadCount = unreadMessages;
}
var openChatGroup = this.ActiveGroupsChats.FirstOrDefault(g => g.Id == group.Id);
if (openChatGroup != null)
{
// chat is open and already receiving new messages, so mark all messages as "read"
existingVm.TotalUnreadCount = 0;
groupState.LastTotalMessageCount = openChatGroup.MessageContainer.TotalMessageCount;
}
});
}
this.SettingsManager.SaveSettings();
this.PublishTotalUnreadCount();
// if everything was successful, reset the reliability monitor
this.ReliabilityStateMachine.Succeeded();
this.RetryTimer?.Dispose();
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine($"Exception in {nameof(this.LoadGroupsAndChats)} - {ex.Message}. Retrying...");
this.RetryTimer = this.ReliabilityStateMachine.GetRetryTimer(async () => await this.LoadGroupsAndChats());
}
finally
{
this.ReloadGroupsSem.Release();
}
}
19
View Source File : TreeViewAdv.Input.cs
License : MIT License
Project Creator : AlexGyver
License : MIT License
Project Creator : AlexGyver
private void StopDragTimer()
{
if (_dragTimer != null)
{
_dragTimer.Dispose();
_dragTimer = null;
}
}
19
View Source File : DnsAsyncState.cs
License : Apache License 2.0
Project Creator : alexreinert
License : Apache License 2.0
Project Creator : alexreinert
internal void SetCompleted()
{
QueryData = null;
if (Timer != null)
{
Timer.Dispose();
Timer = null;
}
IsCompleted = true;
if (_waitHandle != null)
_waitHandle.Set();
if (UserCallback != null)
UserCallback(this);
}
19
View Source File : DnsClientAsyncState.cs
License : Apache License 2.0
Project Creator : alexreinert
License : Apache License 2.0
Project Creator : alexreinert
internal void SetCompleted()
{
QueryData = null;
if (Timer != null)
{
Timer.Dispose();
Timer = null;
}
IsCompleted = true;
if (_waitHandle != null)
_waitHandle.Set();
if (UserCallback != null)
UserCallback(this);
}
19
View Source File : RateGate.cs
License : Apache License 2.0
Project Creator : AlexWan
License : Apache License 2.0
Project Creator : AlexWan
protected virtual void Dispose(bool isDisposing)
{
if (!_isDisposed)
{
if (isDisposing)
{
// The semapreplaced and timer both implement IDisposable and
// therefore must be disposed.
_semapreplaced.Dispose();
_exitTimer.Dispose();
_isDisposed = true;
}
}
}
19
View Source File : AutoDelayTimers.cs
License : MIT License
Project Creator : AlphaYu
License : MIT License
Project Creator : AlphaYu
public void CloseTimer(string key)
{
if (_timers.ContainsKey(key))
{
if (_timers.TryRemove(key, out Timer timer))
{
timer?.Dispose();
}
}
}
19
View Source File : IDatabaseExtension.cs
License : MIT License
Project Creator : AlphaYu
License : MIT License
Project Creator : AlphaYu
public static async Task<(bool Success, string LockValue)> LockAsync(this IDatabase redisDb, string cacheKey, int timeoutSeconds = 5, bool autoDelay = true)
{
ArgumentCheck.NotNullOrWhiteSpace(cacheKey, nameof(cacheKey));
ArgumentCheck.NotLessThanOrEqualZero(timeoutSeconds, nameof(timeoutSeconds));
var lockKey = GetLockKey(cacheKey);
var lockValue = Guid.NewGuid().ToString();
var timeoutMilliseconds = timeoutSeconds * 1000;
var expiration = TimeSpan.FromMilliseconds(timeoutMilliseconds);
bool flag = await redisDb.StringSetAsync(lockKey, lockValue, expiration, When.NotExists);
if (flag && autoDelay)
{
var refreshMilliseconds = (int)(timeoutMilliseconds / 2.0);
var autoDelayTimer = new Timer(timerState => Delay(redisDb, lockKey, lockValue, timeoutMilliseconds), null, refreshMilliseconds, refreshMilliseconds);
var addResult = AutoDelayTimers.Instance.TryAdd(lockKey, autoDelayTimer);
if (!addResult)
{
autoDelayTimer?.Dispose();
await redisDb.SafedUnLockAsync(cacheKey, lockValue);
return (false, null);
}
}
return (flag, flag ? lockValue : null);
}
19
View Source File : IDatabaseExtension.cs
License : MIT License
Project Creator : AlphaYu
License : MIT License
Project Creator : AlphaYu
public static (bool Success, string LockValue) Lock(this IDatabase redisDb, string cacheKey, int timeoutSeconds = 5, bool autoDelay = true)
{
ArgumentCheck.NotNullOrWhiteSpace(cacheKey, nameof(cacheKey));
ArgumentCheck.NotLessThanOrEqualZero(timeoutSeconds, nameof(timeoutSeconds));
var lockKey = GetLockKey(cacheKey);
var lockValue = Guid.NewGuid().ToString();
var timeoutMilliseconds = timeoutSeconds * 1000;
var expiration = TimeSpan.FromMilliseconds(timeoutMilliseconds);
var flag = redisDb.StringSet(lockKey, lockValue, expiration, When.NotExists);
if (flag && autoDelay)
{
var refreshMilliseconds = (int)(timeoutMilliseconds / 2.0);
var autoDelayTimer = new Timer(timerState => Delay(redisDb, lockKey, lockValue, timeoutMilliseconds), null, refreshMilliseconds, refreshMilliseconds);
var addResult = AutoDelayTimers.Instance.TryAdd(lockKey, autoDelayTimer);
if (!addResult)
{
autoDelayTimer?.Dispose();
redisDb.SafedUnLock(cacheKey, lockValue);
return (false, null);
}
}
return (flag, flag ? lockValue : null);
}
19
View Source File : OverlayForm.cs
License : GNU General Public License v2.0
Project Creator : AmanoTooko
License : GNU General Public License v2.0
Project Creator : AmanoTooko
protected override void Dispose(bool disposing)
{
if (this.zorderCorrector != null)
this.zorderCorrector.Dispose();
if (this.Renderer != null)
{
this.Renderer.Dispose();
this.Renderer = (Renderer) null;
}
if (this.surfaceBuffer != null)
this.surfaceBuffer.Dispose();
if (disposing && this.components != null)
this.components.Dispose();
base.Dispose(disposing);
}
19
View Source File : HttpConnection.cs
License : MIT License
Project Creator : andruzzzhka
License : MIT License
Project Creator : andruzzzhka
private void disposeTimer ()
{
if (_timer == null)
return;
try {
_timer.Change (Timeout.Infinite, Timeout.Infinite);
}
catch {
}
_timer.Dispose ();
_timer = null;
}
19
View Source File : HttpBase.cs
License : MIT License
Project Creator : andruzzzhka
License : MIT License
Project Creator : andruzzzhka
protected static T Read<T> (Stream stream, Func<string[], T> parser, int millisecondsTimeout)
where T : HttpBase
{
var timeout = false;
var timer = new Timer (
state => {
timeout = true;
stream.Close ();
},
null,
millisecondsTimeout,
-1);
T http = null;
Exception exception = null;
try {
http = parser (readHeaders (stream, _headersMaxLength));
var contentLen = http.Headers["Content-Length"];
if (contentLen != null && contentLen.Length > 0)
http.EnreplacedyBodyData = readEnreplacedyBody (stream, contentLen);
}
catch (Exception ex) {
exception = ex;
}
finally {
timer.Change (-1, -1);
timer.Dispose ();
}
var msg = timeout
? "A timeout has occurred while reading an HTTP request/response."
: exception != null
? "An exception has occurred while reading an HTTP request/response."
: null;
if (msg != null)
throw new WebSocketException (msg, exception);
return http;
}
19
View Source File : InactivityTrackingService.cs
License : MIT License
Project Creator : angelobreuer
License : MIT License
Project Creator : angelobreuer
public void Dispose()
{
if (_disposed)
{
return;
}
_disposed = true;
_timer?.Dispose();
}
19
View Source File : ISpeachController.cs
License : BSD 3-Clause "New" or "Revised" License
Project Creator : anoyetta
License : BSD 3-Clause "New" or "Revised" License
Project Creator : anoyetta
public static void SpeakWithDelay(
this ISpeechController speechController,
string text,
double delay,
PlayDevices playDevice = PlayDevices.Both,
VoicePalettes voicePalette = VoicePalettes.Default,
bool isSync = false,
float? volume = null)
{
if (delay == 0d)
{
speechController.Speak(text, playDevice, isSync, volume);
return;
}
var timer = new Timer(new TimerCallback((state) =>
{
speechController.Speak(text, playDevice, isSync);
(state as Timer).Dispose();
}));
timer.Change(
TimeSpan.FromSeconds(delay),
TimeSpan.Zero);
}
19
View Source File : BaseBatchMessageHandler.cs
License : MIT License
Project Creator : AntonyVorontsov
License : MIT License
Project Creator : AntonyVorontsov
protected virtual void Dispose(bool disposing)
{
if (_disposed)
{
return;
}
if (disposing)
{
_timer?.Dispose();
Connection?.Dispose();
Channel?.Dispose();
}
_disposed = true;
}
19
View Source File : AmqpSendTask.cs
License : Apache License 2.0
Project Creator : apache
License : Apache License 2.0
Project Creator : apache
private static void OnOutcome(ILink link, global::Amqp.Message message, Outcome outcome, object state)
{
var thisPtr = (AmqpSendTask) state;
thisPtr.timer?.Dispose();
thisPtr.TrySetResult(outcome);
}
19
View Source File : AmqpSendTask.cs
License : Apache License 2.0
Project Creator : apache
License : Apache License 2.0
Project Creator : apache
private static void OnTimer(object state)
{
var thisPtr = (AmqpSendTask) state;
thisPtr.timer.Dispose();
thisPtr.TrySetException(new TimeoutException());
}
19
View Source File : XmlConfigurator.cs
License : Apache License 2.0
Project Creator : apache
License : Apache License 2.0
Project Creator : apache
public void Dispose()
{
m_watcher.EnableRaisingEvents = false;
m_watcher.Dispose();
m_timer.Dispose();
}
19
View Source File : BasketObservableService.cs
License : Apache License 2.0
Project Creator : AppRopio
License : Apache License 2.0
Project Creator : AppRopio
private void OnProductAddToBasket(ProductAddToBasketMessage msg)
{
Task.Run(async () =>
{
try
{
var quanreplacedy = await ApiService.GetQuanreplacedy();
if (Mvx.IoCProvider.CanResolve<IMvxMessenger>() && Messenger.HreplacedubscriptionsFor<ModulesInteractionMessage<int>>())
Messenger.Publish(new ModulesInteractionMessage<int>(this, quanreplacedy) { Type = typeof(IBasketViewModel) });
else
{
Timer timer = null;
timer = new Timer((state) =>
{
if (timer != null && Mvx.IoCProvider.CanResolve<IMvxMessenger>() && Messenger.HreplacedubscriptionsFor<ModulesInteractionMessage<int>>())
{
Messenger.Publish(new ModulesInteractionMessage<int>(this, quanreplacedy) { Type = typeof(IBasketViewModel) });
timer?.Dispose();
timer = null;
}
}, timer, 1000, 1000);
}
}
catch (Exception ex)
{
Mvx.IoCProvider.Resolve<IMvxLog>().Warn($"{this.GetType().FullName}: {ex.BuildAllMessagesAndStackTrace()}");
}
});
}
19
View Source File : MarkedObservableService.cs
License : Apache License 2.0
Project Creator : AppRopio
License : Apache License 2.0
Project Creator : AppRopio
private void OnMarkedChanged(MvxMessage msg)
{
Task.Run(async () =>
{
try
{
var quanreplacedy = await ApiService.GetQuanreplacedy();
if (Mvx.IoCProvider.CanResolve<IMvxMessenger>() && Messenger.HreplacedubscriptionsFor<ModulesInteractionMessage<int>>())
Messenger.Publish(new ModulesInteractionMessage<int>(this, quanreplacedy) { Type = typeof(IMarkedViewModel) });
else
{
Timer timer = null;
timer = new Timer((state) =>
{
if (timer != null && Mvx.IoCProvider.CanResolve<IMvxMessenger>() && Messenger.HreplacedubscriptionsFor<ModulesInteractionMessage<int>>())
{
Messenger.Publish(new ModulesInteractionMessage<int>(this, quanreplacedy) { Type = typeof(IMarkedViewModel) });
timer?.Dispose();
timer = null;
}
}, timer, 1000, 1000);
}
}
catch (Exception ex)
{
Mvx.IoCProvider.Resolve<IMvxLog>().Warn($"{this.GetType().FullName}: {ex.BuildAllMessagesAndStackTrace()}");
}
});
}
19
View Source File : ValueAnimator.cs
License : Apache License 2.0
Project Creator : ascora
License : Apache License 2.0
Project Creator : ascora
protected virtual void RemoveFrameCallback()
{
_timer?.Dispose();
_timer = null;
}
19
View Source File : ValueAnimator.cs
License : Apache License 2.0
Project Creator : ascora
License : Apache License 2.0
Project Creator : ascora
protected virtual void Disposing(bool disposing)
{
if (_timer != null)
{
_timer.Dispose();
_timer = null;
}
if (Update != null)
foreach (EventHandler<ValueAnimatorUpdateEventArgs> handler in Update.GetInvocationList())
Update -= handler;
if (ValueChanged != null)
foreach (EventHandler handler in ValueChanged.GetInvocationList())
ValueChanged -= handler;
}
19
View Source File : EventSource.cs
License : MIT License
Project Creator : AshV
License : MIT License
Project Creator : AshV
private void CloseConnection()
{
if (ReadyState != EventSourceState.Connecting && ReadyState != EventSourceState.Open) return;
Trace.TraceInformation("CloseConnection");
if (_httpWebRequest != null)
{
_httpWebRequest.Abort();
}
if (_httpWebResponse != null)
{
_httpWebResponse.Close();
}
if (_retryTimer != null)
{
_retryTimer.Dispose();
}
_eventStream = null;
_eventId = null;
_eventType = null;
ReadyState = EventSourceState.Closed;
}
19
View Source File : ScheduleService.cs
License : GNU Affero General Public License v3.0
Project Creator : asmejkal
License : GNU Affero General Public License v3.0
Project Creator : asmejkal
public void Replan(TimeSpan delay, DateTime utcDueTime)
{
Timer?.Dispose();
Counter++;
UtcDueTime = utcDueTime;
Timer = new Timer(Callback, (ServerId, Counter), delay, new TimeSpan(Timeout.Infinite));
}
19
View Source File : ScheduleService.cs
License : GNU Affero General Public License v3.0
Project Creator : asmejkal
License : GNU Affero General Public License v3.0
Project Creator : asmejkal
public void Disable()
{
Timer?.Dispose();
Counter++;
UtcDueTime = null;
Timer = null;
}
19
View Source File : ScheduleService.cs
License : GNU Affero General Public License v3.0
Project Creator : asmejkal
License : GNU Affero General Public License v3.0
Project Creator : asmejkal
public void Dispose()
{
Timer?.Dispose();
((IDisposable)Lock).Dispose();
}
19
View Source File : ScheduleService.cs
License : GNU Affero General Public License v3.0
Project Creator : asmejkal
License : GNU Affero General Public License v3.0
Project Creator : asmejkal
public Task StopAsync(CancellationToken ct)
{
_updateTimer?.Dispose();
_updateTimer = null;
foreach (var notification in _notifications.Values)
notification.Disable();
return Task.CompletedTask;
}
19
View Source File : ScheduleService.cs
License : GNU Affero General Public License v3.0
Project Creator : asmejkal
License : GNU Affero General Public License v3.0
Project Creator : asmejkal
public void Dispose()
{
_updateTimer?.Dispose();
_updateTimer = null;
foreach (var notification in _notifications.Values)
notification.Dispose();
}
19
View Source File : LineProtocolPayloadClient.cs
License : MIT License
Project Creator : AspectCore
License : MIT License
Project Creator : AspectCore
public void Dispose()
{
_flushTimer.Dispose();
_logger?.LogInformation("Stop LineProtocolCollector.");
}
19
View Source File : ActiveHandlerTrackingEntry.cs
License : Apache License 2.0
Project Creator : aspnet
License : Apache License 2.0
Project Creator : aspnet
private void Timer_Tick()
{
Debug.replacedert(_callback != null);
Debug.replacedert(_timer != null);
lock (_lock)
{
_timer.Dispose();
_timer = null;
_callback(this);
}
}
19
View Source File : DefaultHttpClientFactory.cs
License : Apache License 2.0
Project Creator : aspnet
License : Apache License 2.0
Project Creator : aspnet
internal virtual void StopCleanupTimer()
{
lock (_cleanupTimerLock)
{
_cleanupTimer.Dispose();
_cleanupTimer = null;
}
}
19
View Source File : BackgroundDocumentGenerator.cs
License : Apache License 2.0
Project Creator : aspnet
License : Apache License 2.0
Project Creator : aspnet
private async void Timer_Tick(object state)
{
try
{
_foregroundDispatcher.replacedertBackgroundThread();
OnStartingBackgroundWork();
KeyValuePair<string, DoreplacedentSnapshot>[] work;
lock (_work)
{
work = _work.ToArray();
_work.Clear();
}
OnBackgroundCapturedWorkload();
for (var i = 0; i < work.Length; i++)
{
var doreplacedent = work[i].Value;
try
{
await doreplacedent.GetGeneratedOutputAsync();
}
catch (Exception ex)
{
ReportError(ex);
_logger.LogError("Error when processing doreplacedent: " + doreplacedent.FilePath);
}
}
OnCompletingBackgroundWork();
await Task.Factory.StartNew(
() =>
{
ReportUnsynchronizableContent(work);
NotifyDoreplacedentsProcessed(work);
},
CancellationToken.None,
TaskCreationOptions.None,
_foregroundDispatcher.ForegroundScheduler);
lock (_work)
{
// Resetting the timer allows another batch of work to start.
_timer.Dispose();
_timer = null;
// If more work came in while we were running start the worker again.
if (_work.Count > 0)
{
StartWorker();
}
}
OnCompletedBackgroundWork();
}
catch (Exception ex)
{
// This is something totally unexpected, let's just send it over to the workspace.
_logger.LogError("Unexpected error processing doreplacedent: " + ex.Message);
ReportError(ex);
_timer?.Dispose();
_timer = null;
}
}
19
View Source File : RazorDiagnosticsPublisher.cs
License : Apache License 2.0
Project Creator : aspnet
License : Apache License 2.0
Project Creator : aspnet
internal void ClearClosedDoreplacedents()
{
lock (_publishedDiagnostics)
{
var publishedDiagnostics = new Dictionary<string, IReadOnlyList<RazorDiagnostic>>(_publishedDiagnostics);
foreach (var entry in publishedDiagnostics)
{
if (!_projectManager.IsDoreplacedentOpen(entry.Key))
{
// Doreplacedent is now closed, we shouldn't track its diagnostics anymore.
_publishedDiagnostics.Remove(entry.Key);
// If the last published diagnostics for the doreplacedent were > 0 then we need to clear them out so the user
// doesn't have a ton of closed doreplacedent errors that they can't get rid of.
if (entry.Value.Count > 0)
{
PublishDiagnosticsForFilePath(entry.Key, Array.Empty<Diagnostic>());
}
}
}
_doreplacedentClosedTimer?.Dispose();
_doreplacedentClosedTimer = null;
if (_publishedDiagnostics.Count > 0)
{
// There's no way for us to know when a doreplacedent is closed at this layer. Therefore, we need to poll every X seconds
// and check if the currently tracked doreplacedents are closed. In practice this work is super minimal.
StartDoreplacedentClosedCheckTimer();
}
}
}
19
View Source File : RazorDiagnosticsPublisher.cs
License : Apache License 2.0
Project Creator : aspnet
License : Apache License 2.0
Project Creator : aspnet
private async void WorkTimer_Tick(object state)
{
DoreplacedentSnapshot[] doreplacedents;
lock (_work)
{
doreplacedents = _work.Values.ToArray();
_work.Clear();
}
for (var i = 0; i < doreplacedents.Length; i++)
{
var doreplacedent = doreplacedents[i];
await PublishDiagnosticsAsync(doreplacedent);
}
lock (_work)
{
// Resetting the timer allows another batch of work to start.
_workTimer.Dispose();
_workTimer = null;
// If more work came in while we were running start the timer again.
if (_work.Count > 0)
{
StartWorkTimer();
}
}
}
See More Examples