我的线程大概如下:static UINT AskCycThread(LPVOID pParam)
{
unsigned char i;
int Result;
while(TRUE)
{
for(i=0;i<8;i++)
{
if(RunSystem[i]==0xFF)
{
CCOMM com;
Result=com.Run(i,1,&CurrentSystem);
}
          }
return 1;
}

解决方案 »

  1.   

    以下是我的线程的大略代码:static UINT AskCycThread(LPVOID pParam)
    {
    unsigned char i;
    int Result;
    while(TRUE)
    {
    for(i=0;i<8;i++)
    {
    if(RunSystem[i]==0xFF)
    {
    CCOMM com;
    Result=com.Run(i,1,&CurrentSystem);
    }
    }
    return 1;
    }
      

  2.   

    static UINT AskCycThread(LPVOID pParam)
    {
    unsigned char i;
    int Result;
    while(TRUE)
    {
    for(i=0;i<8;i++)
    {
    ///////////////////////////////////////////////////////////////
    if(RunSystem[i]==0xFF)
    { CCOMM com;
    Result=com.Run(i,1,&CurrentSystem);
    }
    ////////////////////////////////////////////////////////////////
    }
    return 1;
    }我想这么做:线程在执行到
    /////////////////////////////////
    //////////////////////////////////
    之间的的时候将不能够被挂起,直到跳出这段程序
    请问我该如何做?(请具体一点)
      

  3.   

    提个建议:
    你的程序也许不止一个线程要占用串口资源,可以如下处理:
    Thread A:
       if(检查串口被占用==TRUE)
           return 0;
         ...
       占用串口;
       释放串口;
       return 0;
    Thread B:
       if(检查串口被占用==TRUE)
           return 0;
         ...
       占用串口;
       释放串口;
       return 0;
      

  4.   

    我的想法是不用SUSPENDTHREAD,而向该线程发送一个自定义消息,
    线程受到消息后释放资源然后挂起自己