some attributes that are asynchronously assigned to the background thread during program initialization may be ready for UI before the completion of set, that is, the user can operate. If you need to get some attribute that has not yet been set in the operation, I hope the code will block until set continues to execute. Of course, if set is ready before get, there will be no blocking. So this kind of blocking can only be used once at most. I don"t think it"s authentic to get a lock or signal object for this purpose. This scenario should be very typical. I wonder if there is a more elegant way (such as adding a [xxx] feature to this attribute) to write this attribute?