问题列表 - 第21906页

保持包含NSTimer的NSThread无限期?(苹果手机)

我的应用程序中有一些Web服务数据需要每3分钟更新一次.我曾尝试过一些方法,但上周在这里得到了一个非常好的建议,我不应该每隔3分钟建立一个新线程然后尝试dealloc并同步所有不同的部分,以便我避免内存错误.相反,我应该有一个始终在运行的"工作线程",但只在我提出要求时才进行实际工作(每3分钟一次).

正如我的小POC现在一样,我在applicationDidFinishLaunching 方法中生成了一个新线程.我是这样做的:

[NSThread detachNewThreadSelector:@selector(updateModel) toTarget:self withObject:nil];

- (void) updateModel {

    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    BackgroundUpdate *update = [[BackgroundUpdate alloc] initWithTimerInterval:180];
    [update release];
    [pool release];
}
Run Code Online (Sandbox Code Playgroud)

好的,这会在"BackgroundUpdate"对象中以​​更新间隔(以秒为单位).在更新程序内部,它现在就像这样:

@implementation BackgroundUpdate

- (id) initWithTimerInterval:(NSInteger) secondsBetweenUpdates {

    if(self = [super init]) {

        [NSTimer scheduledTimerWithTimeInterval:secondsBetweenUpdates 
                                        target:self 
                                        selector:@selector(testIfUpdateNeeded) 
                                        userInfo:nil 
                                        repeats:YES];
    }

    return self;
}

- (void) testIfUpdateNeeded {

    NSLog(@"Im contemplating an update...");

}
Run Code Online (Sandbox Code Playgroud)

我之前从未使用过这样的线程.我一直都是"设置autoReleasePool,做好工作,让你的autoReleasePool耗尽,再见".

我的问题是,一旦initWithTimerInterval运行NSThread完毕,它就会返回到updateModel方法并将其池耗尽.我想这与NSTimer有自己的线程/ runloop有关吗?我想让线程继续testIfUpdateNeeded每隔3分钟运行一次方法.

那么如何在我的应用程序的整个过程中保持这个NSThread活着?

感谢您给予的任何帮助/建议:)

iphone nstimer nsthread

1
推荐指数
1
解决办法
2154
查看次数

如何使用自定义标记与情节?

我想在散点图和折线图中使用客户标记.如何从PNG文件中制作自定义标记?

matplotlib

15
推荐指数
3
解决办法
1万
查看次数

有关Sql Server 2008中的更改跟踪的建议

我的客户正在寻找一种在应用程序上执行完整审计跟踪(所有表的历史数据的完整视图)的方法.

除了使用旧式的表格副本或存储字段名称,字段值,修改,修改等方式,我正在寻找使用Sql Server 2008更改跟踪.在msdn
发现了一篇How-To文章

有没有人使用(或完成了POC)Sql Server 2008更改跟踪功能,并发现它是值得的.如果可能的话,请说明您想要的内容以及您发现/结束的内容.欢迎提出任何相同的提示.

[编辑]
它已经一周还没有答案!

sql audit change-tracking audit-trail sql-server-2008

7
推荐指数
1
解决办法
1285
查看次数

如何在jQuery代码运行时显示加载消息?

我是jQuery的新手,我在ready函数中有一段代码需要大约4-5秒才能完成.我想做的是在页面加载时可能使用blockUI来显示"请稍候"消息.但是,如果我在ready函数中插入$ .blockUI和$ .unblockUI,它就会立即运行并消失.如果我把它放在外面,它会破坏IE6.有任何想法吗?我不一定需要使用BlockUI插件,其他任何东西都可以.

谢谢!

编辑:谢谢大家的反馈.我的代码很长,所以我不想在这里发布它,但它基本上构建了一个复选框树,树很长约1000叶.因此,选择已检查的并扩展它们,隐藏未经检查的那些,依此类推等等.我知道我可以尝试更多地优化它,但我想我也很好奇如何做到这一点.所以基本上我没有做任何post,get或ajax调用,我可以将unblock代码附加到它.大多数语句都是选择一些节点并添加/删除一些属性,如hide,show等.

我用yslow做了一些分析,似乎加载时间在被解析的html(~2.5秒)和javascript代码(~2.5)之间划分.在jquery ready函数返回true之前,让我想到是否有一种方法可以在页面加载时立即触发blockUI.

谢谢大家!

再次感谢大家!

jquery

4
推荐指数
1
解决办法
3881
查看次数

如何将启动画面或初始视图添加到Xcode iPhone实用工具模板

  1. 我使用实用程序模板创建了一个应用程序.
  2. 我想在应用程序启动时再添加一个视图(如启动画面).
  3. 在这个视图中,我有三个按钮.当我按下三个按钮中的一个时,实用模板的主视图将被加载.

请尽可能发送代码帮助我..谢谢提前

iphone splash-screen

1
推荐指数
1
解决办法
2万
查看次数

什么是IE8附加组件对Web开发人员有用?

IE 8是否有除"开发人员工具栏"以外的任何其他好的附加组件/扩展/插件,这对Web开发人员/设计人员/测试人员有用吗?

javascript css xhtml jquery internet-explorer-8

2
推荐指数
1
解决办法
1767
查看次数

什么DLL是来自Ninject的Bind(Of T)

我正在使用.Net 3.5和一个最终将成为Windows服务的控制台应用程序.

我找到的大多数例子都使用了类似的东西

Bind<IWeapon>().To<Sword>();
Run Code Online (Sandbox Code Playgroud)

我已将所有DLL作为参考包含在我的项目中,编译器仍在抱怨.我出错的地方有哪些线索?对不起,这可能是一个愚蠢的问题.

更新:只需注意一些似乎需要但未被引用的其他库.有像Castle Core这样的图书馆.这些应该包括在内吗?

.net dependency-injection ninject

5
推荐指数
1
解决办法
768
查看次数

14
推荐指数
2
解决办法
3867
查看次数

如何使用Android从我的应用程序调用Wi-Fi设置屏幕

通常我点击模拟器上的Wi-Fi设置屏幕Settings > Wireless controls > wifi settings.按下我创建的Wi-Fi按钮时,我需要从我的程序直接进入Wi-Fi设置屏幕.联系人,调用我们可以使用Intent.setData处理的日志(android.provider.contacts ...........).有没有办法从Android程序打开设置子菜单/菜单?
请给我建议或示例代码.

android wifi

74
推荐指数
5
解决办法
9万
查看次数

在Linq To SQL中进行转换

我有一个界面有以下方法签名:

public interface ITag
{
    int M_Id { get; set; }
    string M_Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我有一个实现上面接口的类:

[Table(Name="News")]
public class NewsTag:ITag
{
    [Column(Name="id",isPrimaryKey = true)]
    public int M_Id
    {
        get; set;
    }

    [Column(Name = "name")]
    public string M_Name
    {
        get; set;
    }

    [Column(Name = "extraField")]
    public string M_ExtraField
    {
        get;
        set;
    }
}
Run Code Online (Sandbox Code Playgroud)

我想从我的数据库中检索行并发送它们

public IQueryable<ITag> fGetNewsTags(int id)
{
    var result = from news in context.GetTable<NewsTag>()
                 where news.M_Id == id
                 select news;

    return (IQueryable<ITag>)result;
}
Run Code Online (Sandbox Code Playgroud)

但问题是即使NewsTag是ITag接口的子类,我尝试使用的转换(返回(IQueryable)结果;)也无法正常工作.

任何帮助,将不胜感激.

c# casting linq-to-sql

1
推荐指数
1
解决办法
175
查看次数