今天遇到一个线程锁的问题,一个按钮点击后调用了一个函数在这个函数中会启用一个界面如果没有登录那登录之后在启用这个界面,问题是这个按钮在连续点击多次的情况下会启用多个同一界面,所以给这个按钮或是方法添加控制多次点击的逻辑,因为这个函数会在多个地方调用所以把控制多次点击的逻辑添加到了函数中,一开始给函数添加了一个线程锁,这样就是使得在方法没有执行完即界面没有唤起前多次的调用此函数会失效,但是在软件下载后首次使用的时候还是可以连续多次点击唤起多个界面,原来在函数中有判断登录的逻辑,如果没有登录则需要先去登录再唤起界面,而登录是一个异步的方法所以这个时候线程锁就相当于“失效了”。