Exemplo n.º 1
0
        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("验证此测试方法的正确性。");
        }
Exemplo n.º 4
0
 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: 实现用来验证目标的代码");
        }