windows::Win32::System::ClrHosting

Trait ICorThreadpool_Impl

pub trait ICorThreadpool_Impl: IUnknownImpl {
    // Required methods
    fn CorRegisterWaitForSingleObject(
        &self,
        phnewwaitobject: *const HANDLE,
        hwaitobject: HANDLE,
        callback: WAITORTIMERCALLBACK,
        context: *const c_void,
        timeout: u32,
        executeonlyonce: BOOL,
    ) -> Result<BOOL>;
    fn CorUnregisterWait(
        &self,
        hwaitobject: HANDLE,
        completionevent: HANDLE,
    ) -> Result<BOOL>;
    fn CorQueueUserWorkItem(
        &self,
        function: LPTHREAD_START_ROUTINE,
        context: *const c_void,
        executeonlyonce: BOOL,
    ) -> Result<BOOL>;
    fn CorCreateTimer(
        &self,
        phnewtimer: *const HANDLE,
        callback: WAITORTIMERCALLBACK,
        parameter: *const c_void,
        duetime: u32,
        period: u32,
    ) -> Result<BOOL>;
    fn CorChangeTimer(
        &self,
        timer: HANDLE,
        duetime: u32,
        period: u32,
    ) -> Result<BOOL>;
    fn CorDeleteTimer(
        &self,
        timer: HANDLE,
        completionevent: HANDLE,
    ) -> Result<BOOL>;
    fn CorBindIoCompletionCallback(
        &self,
        filehandle: HANDLE,
        callback: LPOVERLAPPED_COMPLETION_ROUTINE,
    ) -> Result<()>;
    fn CorCallOrQueueUserWorkItem(
        &self,
        function: LPTHREAD_START_ROUTINE,
        context: *const c_void,
    ) -> Result<BOOL>;
    fn CorSetMaxThreads(
        &self,
        maxworkerthreads: u32,
        maxiocompletionthreads: u32,
    ) -> Result<()>;
    fn CorGetMaxThreads(
        &self,
        maxworkerthreads: *mut u32,
        maxiocompletionthreads: *mut u32,
    ) -> Result<()>;
    fn CorGetAvailableThreads(
        &self,
        availableworkerthreads: *mut u32,
        availableiocompletionthreads: *mut u32,
    ) -> Result<()>;
}

Required Methods§

fn CorRegisterWaitForSingleObject( &self, phnewwaitobject: *const HANDLE, hwaitobject: HANDLE, callback: WAITORTIMERCALLBACK, context: *const c_void, timeout: u32, executeonlyonce: BOOL, ) -> Result<BOOL>

fn CorUnregisterWait( &self, hwaitobject: HANDLE, completionevent: HANDLE, ) -> Result<BOOL>

fn CorQueueUserWorkItem( &self, function: LPTHREAD_START_ROUTINE, context: *const c_void, executeonlyonce: BOOL, ) -> Result<BOOL>

fn CorCreateTimer( &self, phnewtimer: *const HANDLE, callback: WAITORTIMERCALLBACK, parameter: *const c_void, duetime: u32, period: u32, ) -> Result<BOOL>

fn CorChangeTimer( &self, timer: HANDLE, duetime: u32, period: u32, ) -> Result<BOOL>

fn CorDeleteTimer(&self, timer: HANDLE, completionevent: HANDLE) -> Result<BOOL>

fn CorBindIoCompletionCallback( &self, filehandle: HANDLE, callback: LPOVERLAPPED_COMPLETION_ROUTINE, ) -> Result<()>

fn CorCallOrQueueUserWorkItem( &self, function: LPTHREAD_START_ROUTINE, context: *const c_void, ) -> Result<BOOL>

fn CorSetMaxThreads( &self, maxworkerthreads: u32, maxiocompletionthreads: u32, ) -> Result<()>

fn CorGetMaxThreads( &self, maxworkerthreads: *mut u32, maxiocompletionthreads: *mut u32, ) -> Result<()>

fn CorGetAvailableThreads( &self, availableworkerthreads: *mut u32, availableiocompletionthreads: *mut u32, ) -> Result<()>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§