小编Wil*_*art的帖子

异步调用 - 是否需要EndInvoke?

可能重复:
每个BeginInvoke必须跟一个EndInvoke吗?
EndInvoke()是可选的,sort-of optional,还是绝对不是可选的?

我有一个多线程应用程序,其中一个辅助线程需要每隔几分钟就在主线程上执行一些代码.没有任何返回值,第二个线程不关心它是否引发任何异常或无法运行.

到目前为止,我已经得到它来运行代码Form.Invoke,但它有时需要比平时(几秒钟)更长的时间并阻塞线程直到它完成.我需要第二个线程能够继续执行而不会停顿几秒钟.

BeginInvoke听起来它很好地完成了工作,但我真的没有任何地方可以打电话EndInvoke,因为我不想等待它或获得返回值.考虑到被调用的代码涉及一堆本机调用,我不确定它是否是一个好主意EndInvoke.

我是否需要调用EndInvoke,或者是否有其他方法可以使代码在主窗体线程上异步运行而不是我应该使用?

谢谢=)

c# multithreading delegates begininvoke

6
推荐指数
2
解决办法
4611
查看次数

将Laravel-4 Eloquent查询结果转换为数组

我正在尝试让我的路由在数据库中插入一个新行,如果成功返回一些JSON中的记录(带有新的主键id).我收到以下错误:

{
    "error":
    {
        "type":"BadMethodCallException",
        "message":"Call to undefined method Illuminate\\Database\\Query\\Builder::to_array()",
        "file":"\\vendor\\laravel\\framework\\src\\Illuminate\\Database\\Query\\Builder.php",
        "line":1418
    }

}
Run Code Online (Sandbox Code Playgroud)

这是我的路线:

Route::post('/client/create', function()
{
    $client = Client::create(Input::all());
    if($client)
    {
        return json_encode(array('Result' => 'OK', 'Record' => $client->to_array()));
    }
    else
    {
        return json_encode(array('Result' => 'ERROR', 'Message' => 'Error Inserting Record =('));
    }
});
Run Code Online (Sandbox Code Playgroud)

根据我读过的Laravel文档,您应该使用->to_array()将模型转换为数组,并::create在成功插入时返回模型的实例.我已经检查了数据库,并且正在插入记录.

laravel eloquent laravel-4

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