public IOCompletionManager(int?numberOfCompletionPortThreads = null, string name = "<unnamed>") { Contract.Requires(!numberOfCompletionPortThreads.HasValue || numberOfCompletionPortThreads > 0); int effectiveNumberOfCompletionPortThreads = numberOfCompletionPortThreads ?? GetDefaultNumberOfCompletionPortThreads(); Contract.Assume(effectiveNumberOfCompletionPortThreads > 0); m_completionPort = FileSystemWin.CreateIOCompletionPort(); m_completionPortRefCount = 1; // Referenced by this manager. m_completionPortWorkers = new Thread[effectiveNumberOfCompletionPortThreads]; m_overlappedPool = new OverlappedPool(); long handleValue = m_completionPort.DangerousGetHandle().ToInt64(); ThreadStart workerEntry = CompletionWorkerThreadProc; for (int i = 0; i < effectiveNumberOfCompletionPortThreads; i++) { var newThread = new Thread(workerEntry) { Name = I($"IOCompletionManagerWorker (port handle 0x{handleValue:X}; '{name}')"), IsBackground = true }; m_completionPortWorkers[i] = newThread; newThread.Start(); } }
public void SafeIOCompletionPortHandleConstructorTest() { IntPtr handle = new IntPtr(); // TODO: 初始化为适当的值 bool ownsHandle = false; // TODO: 初始化为适当的值 SafeIOCompletionPortHandle target = new SafeIOCompletionPortHandle(handle, ownsHandle); Assert.Inconclusive("TODO: 实现用来验证目标的代码"); }
public void CloseHandleTest() { IntPtr handle = new IntPtr(); // TODO: 初始化为适当的值 bool expected = false; // TODO: 初始化为适当的值 bool actual; actual = SafeIOCompletionPortHandle.CloseHandle(handle); Assert.AreEqual(expected, actual); Assert.Inconclusive("验证此测试方法的正确性。"); }
public static extern unsafe bool GetQueuedCompletionStatus( SafeIOCompletionPortHandle completionPort, out uint lpNumberOfBytes, out IntPtr lpCompletionKey, out IntPtr lpOverlapped, uint dwMilliseconds);
public void SafeIOCompletionPortHandleConstructorTest() { IntPtr handle = new IntPtr(); // TODO: 初始化为适当的值 bool ownsHandle = false; // TODO: 初始化为适当的值 SafeIOCompletionPortHandle target = new SafeIOCompletionPortHandle( handle, ownsHandle ); Assert.Inconclusive( "TODO: 实现用来验证目标的代码" ); }
public void SafeIOCompletionPortHandleConstructorTest1() { SafeIOCompletionPortHandle target = new SafeIOCompletionPortHandle(); Assert.Inconclusive( "TODO: 实现用来验证目标的代码" ); }
public void SafeIOCompletionPortHandleConstructorTest1() { SafeIOCompletionPortHandle target = new SafeIOCompletionPortHandle(); Assert.Inconclusive("TODO: 实现用来验证目标的代码"); }