by Kobu » 2006年9月27日(水) 13:49
konisi様、OverTaker様、NoWest様返信ありがとうございます。
メインスレッドでは
コード: 全て選択
InvalidateRect(hMainWnd,ByVal 0,0)---①
---500行くらいコードがある---(この間aDCは関係なし)
②
BitBlt(cDC,0,0,MX+1,101,aDC,0,MY-100,SRCCOPY)
SelectObject(aDC,hPenb)
SelectObject(aDC,brh)
Rectangle(aDC,30,MY-100,MX-30,MY-30)
TextOut(aDC,50,MY-80,i,lstrlen(i))
InvalidateRect(hMainWnd,ByVal 0,0)
ウィンドウメッセージスレッドはふつうにRADツールでつくって、先ほどのコードを足したものです。
多分自分が実験した結果では、①で呼び出した再描画要求で描画されるまでにTextOut などでaDCを参照してしまい。
OverTaker様が言われました「アクセスするタイミングが衝突してしまう問題」になってしまうと思うのです。
まずは、クリティカルセクションなるものを調べようと思います。
返答ありがとうございました。[/code]
konisi様、OverTaker様、NoWest様返信ありがとうございます。
メインスレッドでは
[code]
InvalidateRect(hMainWnd,ByVal 0,0)---①
---500行くらいコードがある---(この間aDCは関係なし)
②
BitBlt(cDC,0,0,MX+1,101,aDC,0,MY-100,SRCCOPY)
SelectObject(aDC,hPenb)
SelectObject(aDC,brh)
Rectangle(aDC,30,MY-100,MX-30,MY-30)
TextOut(aDC,50,MY-80,i,lstrlen(i))
InvalidateRect(hMainWnd,ByVal 0,0)
[/code]
ウィンドウメッセージスレッドはふつうにRADツールでつくって、先ほどのコードを足したものです。
多分自分が実験した結果では、①で呼び出した再描画要求で描画されるまでにTextOut などでaDCを参照してしまい。
OverTaker様が言われました「アクセスするタイミングが衝突してしまう問題」になってしまうと思うのです。
まずは、クリティカルセクションなるものを調べようと思います。
返答ありがとうございました。[/code]