它是不好的做法,呼吁registerForRemoteNotificationTypes
中applicationDidBecomeActive
?我正在调用它applicationDidFinishLoading
,但是对于多任务处理,某些用户的注册时间几天到几周都没有发生.
我想更频繁地致电注册,但如果这是不好的做法,我不想经常这样说.
问题是这个 - 我的应用程序允许您密码保护自己.我使用的界面就像保护手机的密码一样.这一直很好,直到多任务出现.
密码保护仍然有效,但有一个问题.Apple做了一些特别的事情,让它看起来像我们的应用程序在从后台返回时加载速度更快.操作系统在用户离开应用程序之前拍摄了我们的屏幕图片,并显示该应用程序的其余部分仍在加载.
这导致的问题是,有人试图访问我的应用程序会在密码保护启动之前看到屏幕图像.当然,它并不多,但我不认为我的用户会喜欢人们能够的想法甚至可以瞥一眼他们的数据.
如何阻止快照图像显示?
我有一个长时间运行的进程,从telnet端口连续读取,可能偶尔写入它.有时我想向它发送一个HTTP请求以获取自上次询问以来读取的信息.有时我可能会发送HTTP请求将某些数据写入另一个telnet端口.
我应该用2个线程执行此操作,如果是这样,我应该使用互斥锁或指令队列.你怎么用烧瓶穿线?我应该使用多处理吗?别的什么?
我问这个问题的原因是我遇到了类似问题的问题(但是串口而不是telnet端口,直接在应用程序中而不是本地/远程HTTP服务)并且最终导致非数据读取线程几乎从不运行,即使在我插入了大量的睡眠电话.我最终将它从互斥锁重写为队列,然后再使用多处理w /队列.
编辑:telnet端口是与应用程序的连接,该应用程序与硬件(打印机)进行通信(主要是读取调试数据).我想写的烧瓶HTTP服务将通过针对打印机运行的测试来访问(在同一台机器上或与HTTP服务不同的机器上),这些都不涉及Web浏览器!
我正在编写一个研究应用程序,它利用通过UDP广播数据的特定传感器.有各种商业应用程序使用这个传感器,我们希望能够同时运行我们的应用程序和现有的应用程序.
在过去(iOS 8及以下版本),我们将在后台运行我们的应用程序,以在前台记录数据和不同的应用程序.不幸的是,似乎只有一个应用程序能够绑定到传入的UDP数据(这是有道理的),但是随着即将到来的"并排"应用程序功能,我想知道是否有任何解决方案在应用程序之间共享数据.
我唯一能想到的是以某种方式让我们的应用程序捕获数据并将其重新广播到其他应用程序,但我不知道这是否可能在iOS中,即使它是如何确定"谁"锁定UDP流.
苹果文档位于:https://developer.apple.com/library/prerelease/ios/documentation/WindowsViews/Conceptual/AdoptingMultitaskingOniPad/index.html#//apple_ref/doc/uid/TP40015145似乎没有提供太多信息.
所以我想在我即将推出的iPhone应用程序中支持应用程序切换,并且我已经在我的应用程序委托中实现了所有正确的委托方法.因此,当用户恢复应用程序时,我可以在NSLog中看到他们的活动.但是,我怎么能告诉我的应用程序已恢复控制器?有没有一种方法可以放在我的控制器中告诉我应用程序已在所述控制器中恢复?我问的原因是因为我的应用程序处理自己的URL架构,我想根据启动的URL更新视图.任何帮助将不胜感激.
提前致谢
两个进程可以同时在一个具有超线程的CPU核心上运行吗?我从互联网上学习.但是,我没有看到明确的直接答案.
编辑: 感谢您的讨论和分享!我的钱包在这里发布我的问题不是讨论并行计算.它太大了,不能在这里讨论.我只想知道多线程应用程序是否可以从超线程中获益,而不是多进程应用程序.在进一步阅读之后,我有以下作为我的学习笔记.
1)启用超线程技术CPU核心有两组CPU状态和中断逻辑.同时,它只有一组执行单元和缓存.(我还没有研究什么是管道)
2)只有在某些执行的线程中发生延迟时,多线程才能从超线程中获益.我认为这一点可以准确地映射为什么以及何时软件程序员使用多线程的常见原因.如果多线程应用程序已经过优化.它可能无法从Hypter线程中获得任何好处.
3)如果CPU状态映射到进程状态,我相信Marc是正确的,多进程应用程序甚至可以从超线程技术中获益更多.
4)当CPU供应商说"线程"时,看起来他们的"线程"与我认为是java程序员的线程不同?
我有一个与数据库交互的C#服务应用程序.它最近从.NET 2.0迁移到.NET 4.0,因此我们可以使用大量新工具.
我正在寻找编程方法或工具/库的指针来处理定义任务,配置他们依赖的任务,排队,优先排序,取消等.
有各种类型的服务:
这些服务通常彼此依赖并且按需触发,即报告任务,其中可能包含代码,例如
if (IsSomeDependentCalculationRequired())
PerformDependentCalculation(); // which may trigger further calculations
GenerateRequestedReport();
Run Code Online (Sandbox Code Playgroud)
此外,任何数据修改都可能Required
在某些计算或报告服务上设置标志(因此报告在完成生成之前可能已过期).任务的长度从几秒到几分钟不等,并在交易中执行.
到目前为止,这已经很好用了,但它的扩展性不好.有一些基本的设计问题,我希望重写这部分代码.例如,如果两个用户在相似时间请求相同的报告,则依赖任务将被执行两次.此外,目前无法取消正在进行的任务.维护依赖任务很难.
我不是在寻找有关如何实施修复的建议.相反,如果我从头开始使用.NET 4,那么我正在寻找指向我将用于此类要求的工具/库的指针.这是Windows Workflow的一个很好的候选者吗?这是期货的用途吗?我应该看看还有其他图书馆吗?我应该阅读的书籍或博客文章?
编辑:关于什么的Rx无扩展?
我正在研究各种OS设计,希望为DCPU-16编写简单的多任务操作系统.但是,我读到的关于抢先式多任务处理的所有内容都以中断为中心.听起来在16位硬件和软件时代,协作式多任务处理更为常见,但这需要考虑每个程序的多任务处理.
有没有办法在无中断架构上实现抢占式多任务处理?我能想到的只是一个可以动态切换任务的解释器,但这会产生巨大的性能损失(如果它必须解析每个操作并且不让任何东西本地运行,可能会大约10-20x +,我是想象).
我写了一个Win32应用程序(在Delphi-7中使用TThread类是32位)来创建100个线程.恢复时的每个线程将连续(在循环中)递增与线程对象相关联的64位计数器(因此不会锁定或共享数据).
如果让系统运行10到15秒并在此之后停止,则应该在每个线程中看到大致相同的计数.但我观察到的是,81个线程在4亿个循环下运行,其余循环超过9.5亿次.与最快的2111万相比,最慢的线程只有2.3亿.
根据MSDN,抢占式多任务处于线程级别(而不是进程级别),因此我的每个线程都应该以循环方式获得其时间片.我在这里错过了什么,为什么会出现这种差异?
编辑1:机器配置:启用超线程的Intel i7 Quad Core 3.4GHz(一次启动8个活动线程).运行Windows-7 64位专业版(测试应用程序是32位)
Edit2(线程代码):测试应用程序是在打开优化的情况下构建的,没有任何调试信息.在IDE外部运行测试应用程序.
type
TMyThread = class(TThread)
protected
FCount: Int64;
public
constructor Create;
procedure Execute; override;
property Count: Int64 read FCount;
end;
{ TMyThread }
constructor TMyThread.Create;
begin
inherited Create(True);
FCount := 0;
end;
procedure TMyThread.Execute;
begin
inherited;
while not Terminated do
begin
Inc(FCount);
end;
end;
Run Code Online (Sandbox Code Playgroud) 我UIBackgroundModes
在Info.plist中添加了一个属性,其数组条目为" audio
",并添加了调用以设置音频会话:[session setCategory: AVAudioSessionCategoryPlayback error: &error];
.
但是,我唯一的测试设备是iPod Touch 2G,它不支持多任务处理.我尝试过模拟器但是当我切换到Safari时音乐停止播放.但当我切换回我的应用程序时,歌曲继续播放到比离开应用程序时更远的位置.
它似乎继续在后台播放但我在使用其他应用程序(Safari)时没有听到我的应用程序的音频.