我有一个关于串口或蓝牙的类。这个类有一个叫做的方法 CommandSender(String CommandText);
有很多表单或线程可以调用该方法。我该怎么做: 如果方法调用一次立即执行该方法, 如果多个表单或线程调用该方法,则只需在调用之前/之后休息2秒。
请提供代码详情。 太棒了!
答案 0 :(得分:0)
你可以使用
public synchronized void CommandSender(String CommandText) { }
但这不会提供您需要的2秒睡眠。如果你确实需要2秒睡眠,那么你必须自己实施。
public class BluetoothUtils
{
private static boolean isLocked = false;
public void CommandSender(String CommandText)
{
while(isLocked)
{
Thread.sleep(2000); // sleep for 2 seconds
}
CommandSenderInternal(CommandText);
}
private synchronized void CommandSenderInternal(String CommandText)
{
isLocked = true;
try
{
// Your implementation here
}
catch(Exception ex)
{
}
finally
{
isLocked = false;
}
}
}