⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 threads.h

📁 hl2 source code. Do not use it illegal.
💻 H
字号:
//=========== (C) Copyright 2000 Valve, L.L.C. All rights reserved. ===========
//
// The copyright to the contents herein is the property of Valve, L.L.C.
// The contents may be used and/or copied only with the written permission of
// Valve, L.L.C., or in accordance with the terms and conditions stipulated in
// the agreement/contract under which the contents have been supplied.
//
// Purpose: 
//=============================================================================

#ifndef THREADS_H
#define THREADS_H
#pragma once

class IThreadRun;

#include "interface.h"

//-----------------------------------------------------------------------------
// Purpose: Interface to the threading API
//-----------------------------------------------------------------------------
class IThreads : public IBaseInterface
{
public:
	// creation
	virtual void CreateThread( IThreadRun * ) = 0;

	// critical section usage
	class CCriticalSection;

	// returns a pointer to a new critical section
	virtual CCriticalSection *CreateCriticalSection( void ) = 0;

	// invalidates and deletes an existing critical section
	virtual void DeleteCriticalSection( CCriticalSection * ) = 0;

	// enters a critical section;  thread sleeps until the critical section becomes available
	virtual void EnterCriticalSection( CCriticalSection * ) = 0;

	// tries to enter a critical section;  returns true if suceeded, false otherwise
	// !! not implemented in first release of win95s
//	virtual bool TryEnterCriticalSection( CCriticalSection * ) = 0;

	// leaves a critical section, freeing it up for other threads to enter
	virtual void LeaveCriticalSection( CCriticalSection * ) = 0;

	////// sleeping and events //////

	// virtual CEvent *CreateEvent( void );
	// virtual void SignalEvent( CEvent * );

	// inactivity
	virtual void Sleep( int milliseconds ) = 0;

	// returns the time, in seconds, since IThreads was created
	virtual float GetTime() = 0;
};

#define THREADS_INTERFACE_VERSION "Threads001"

//-----------------------------------------------------------------------------
// Purpose: callback interface for the thread API
//			clients of the thread API implement this in objects they want threads created in
//-----------------------------------------------------------------------------
class IThreadRun
{
public:
	virtual int ThreadRun( void ) = 0;
	virtual void ThreadFinished( void ) = 0;
};




#endif // THREADS_H

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -