设计思想,该如何解决

设计思想
现在需要注册一个设备,根据设备句柄组侧后使用上层接口通讯。
现在有2个问题,必须先接上设备才能获得设备句柄,这样子不符合用户习惯,
只好在OnInitDialog()用while 循环判断设备的个数,没找到就是0
现在是PC段应用程序先运行,搜寻设备(可是设备如果不存在,程序直接崩溃)
usb_init();
usb_find_busses();
int device = usb_find_devices();
while(TRUE)
{
if(!device > 0) 
{
   WaitForSingleObject(WRITE_OS.hEvent, 5000);
}
hdev = open_dev();
usb_claim_interface(hdev, 0);
可是窗口出不来,死循环了
要求是PC端应用程序先起来,点击运行按钮,等待板端一段时间,搜寻到设备进行通讯
我有放到开始按钮里面弄,先没连接到设备,程序运行,但是我上电设备管理器看到设备了,但串口没反应,相当于没获得句柄,该怎么办???
求给出实际解决问题的方法!谢谢!!!
通信 应用

------解决方案--------------------
int device = usb_find_devices();
这一句在循环体的外面吗?if(!device > 0) 什么时候为假?

while(TRUE)这是一个无限循环,循环体内有break吗?
------解决方案--------------------
开个线程啊,需要sleep
------解决方案--------------------
你把主线程个阻塞了,程序肯定卡啊
------解决方案--------------------
开线程,把搜到的数据传递给对话框,并刷新数据。
在对话框添加一个列表空间,用来显示设备列表
一个也没有搜到,显示无设备。
搜到了加到列表里;
如果有变动改变列表的内容即可;


------解决方案--------------------
另开一个工作线程