我想显示iOS网络指示器,而这些任务当前正在运行.
我该怎么做?
解决方法 我创建了这个类,将NetworkActivityIndicatorVisible包装成一对进入/离开方法.public static class NetworkIndicator{ static int _counter; public static voID Enteractivity () { Interlocked.Increment (ref _counter); Refreshindicator (); } public static voID LeaveActivity () { Interlocked.Decrement (ref _counter); Refreshindicator (); } public static voID AttachToTask (Task task) { if (task.IsCanceled || task.IsCanceled || task.IsFaulted) return; Enteractivity (); task.ContinueWith (t => { LeaveActivity (); }); } static voID Refreshindicator () { UIApplication.SharedApplication.NetworkActivityIndicatorVisible = (_counter > 0); }}
然后我为方便起见添加了两个扩展方法:
public static class TaskExtensions{ public static Task WithNetworkIndicator (this Task task) { NetworkIndicator.AttachToTask (task); return task; } public static Task<TResult> WithNetworkIndicator<TResult> (this Task<TResult> task) { NetworkIndicator.AttachToTask (task); return task; }}
我是如何包装它的:
var task = API.queryNotifications (AuthManager.CurrentProfile.ID,NotificationType.All,until,cached) .WithNetworkIndicator ();
然后我像往常一样使用任务.
总结以上是内存溢出为你收集整理的在TPL任务运行时如何显示iOS网络指示器?全部内容,希望文章能够帮你解决在TPL任务运行时如何显示iOS网络指示器?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)