シリアル通信プログラムを作成しています。

メインスレッドでコマンド1を送信し、受信内容がAだったらコマンド2を送信するという処理にしています。
受信側(別スレッド?)の処理が終わる前にメイン側が受信内容の判断処理に入ってしまうため、本当に受信内容がAの場合でもコマンド2に移ることができません。
どのように対処すればよいでしょうか。