Model/QueueTimer.cs
(开头部分) 6KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
using System.Threading;
namespace CustomTimers.Model
{
public class QueueTimer : IDisposable, IPrimitiveTimer
{
//-----------------------------------------------
// PInvoke methods and struct
//-----------------------------------------------
public delegate void WaitOrTimerDelegate (
IntPtr Parameter, Int32 TimerOrWaitFired);
public enum WtFlags
{
WT_EXECUTEDEFAULT = 0x00000000,
WT_EXECUTEINTIMERTHREAD = 0x00000020,
WT_EXECUTEINIOTHREAD = 0x00000001,
WT_EXECUTEINPERSISTENTTHREAD = 0x00000080,
WT_EXECUTELONGFUNCTION = 0x00000010,
WT_EXECUTEONLYONCE = 0x00000008,
WT_TRANSFER_IMPERSONATION = 0x00000100
};
[DllImport ("kernel32.dll")]
static extern IntPtr CreateTimerQueue ();
[DllImport ("kernel32.dll")]
static extern bool CreateTimerQueueTimer (
out IntPtr phNewTimer, IntPtr TimerQueue,
WaitOrTimerDelegate Callback, IntPtr Parameter, uint DueTime,
uint Interval, uint Flags);
[DllImport ("kernel32.dll")]
static extern bool ChangeTimerQueueTimer (
IntPtr TimerQueue, IntPtr Timer, uint DueTime, uint Interval);
[DllImport ("kernel32.dll")]
static extern bool DeleteTimerQueueTimer (
IntPtr TimerQueue, IntPtr Timer, IntPtr CompletionEvent);
[DllImport ("kernel32.dll")]
static extern bool DeleteTimerQueueEx (
IntPtr TimerQueue, IntPtr CompletionEvent);
//-----------------------------------------------
// Private data members
//-----------------------------------------------
private IntPtr _HTimerQueue = IntPtr.Zero;
private IntPtr _HQueueTimer = IntPtr.Zero;
// Track whether Dispose has been called.
private bool _IsDisposed = false;
private WaitOrTimerDelegate _WaitOrTimerDelegate;
private double _Interval = 1000.0;
后面还有 134 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
