假设我有以下类(class):classSomeClass{privateTaskCompletionSource_someTask;publicTaskWaitForThing(){_someTask=newTaskCompletionSource();return_someTask.Task;}//Othercodewhichcalls_someTask.SetResult(..);}然后在别处,我调用//Somecode..awaitsomeClassInstance.WaitForThing();//Somemorecode在调用_someTask.SetResult(..)之
我有一个Web应用程序,它可以在很长一段时间内动态加载数据。在数据中有指向图像的链接,这些图像随后会在浏览器中呈现。例如varobject={Name:ko.observable("Foo"),Ref:ko.observable("Bar"),ImageUrl:ko.observable("http://.....")}我正在使用Knockoutjs的模板绑定(bind)以在屏幕上呈现数据。因此,每次通过Ajax调用更改对象时,Knockoutjs模板都会使用数据重新呈现,并且图像也会更改。经过很长一段时间后,这些图像会累积起来并占用更多内存。现代浏览器似乎可以更好地应对,但问题主要在
CUSTOM_VIEW类:我制作了custom_view类,它计算自身的值并每1秒向用户显示一次。根据存储在custom_view实例中的属性/变量计算custom_view中的值。VIEWCONTROLLER类:我通过在VIEWCONTROLLER类中创建custom_class的实例来显示大约7到9个View。由于我的custom_class每1秒显示一次新的计算值,我使用dispatch_async来执行计算代码。这样它就不会影响UI线程。custom_view.mstaticdispatch_queue_tqueue;queue=dispatch_get_global_queu