问题列表 - 第8691页

事件/任务队列多线程C++

我想创建一个类,其方法可以从多个线程调用.但它不是在调用它的线程中执行该方法,而是应该在它自己的线程中执行它们.不需要返回任何结果,它不应该阻止调用线程.

我在下面列出的第一次尝试实施.公共方法将函数指针和数据插入到作业队列中,然后工作线程接收该作业队列.然而,它并不是特别好的代码并且添加新方法是麻烦的.

理想情况下,我想使用它作为基类,我可以轻松添加方法(具有可变数量的参数),最小的hastle和代码重复.

有什么更好的方法呢?是否有任何类似的现有代码?谢谢

#include <queue>

using namespace std;

class GThreadObject
{
    class event
    {
        public:
        void (GThreadObject::*funcPtr)(void *);
        void * data;
    };

public:
    void functionOne(char * argOne, int argTwo);

private:
    void workerThread();
    queue<GThreadObject::event*> jobQueue;
    void functionOneProxy(void * buffer);
    void functionOneInternal(char * argOne, int argTwo);

};



#include <iostream>
#include "GThreadObject.h"

using namespace std;

/* On a continuous loop, reading tasks from queue
 * When a new event is received it executes the attached function pointer
 * It should block on …
Run Code Online (Sandbox Code Playgroud)

c++ queue multithreading pthreads

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

在PHP中获取给定周的开始和结束日期

我试图用星期日作为开始日期和参考日期来获得星期范围,比方说$date,但我似乎无法弄明白.

例如,如果我在2009-05-01获得$ date,我会得到2009-04-26和2009-05-02.2009-05-10将产生2009-05-10和2009-05-16.我当前的代码看起来像这样(我不记得我从哪里取出它,因为我忘记在我的评论中记下网址):

function x_week_range(&$start_date, &$end_date, $date)
{
    $start_date = '';
    $end_date = '';
    $week = date('W', strtotime($date));
    $week = $week;

    $start_date = $date;

    $i = 0;
    while(date('W', strtotime("-$i day")) >= $week) {
        $start_date = date('Y-m-d', strtotime("-$i day"));
        $i++;
    }

    list($yr, $mo, $da) = explode('-', $start_date);

    $end_date = date('Y-m-d', mktime(0, 0, 0, $mo, $da + 6, $yr));
}
Run Code Online (Sandbox Code Playgroud)

我意识到它所做的只是在当前日期增加了7天.你会怎么做?

php datetime

30
推荐指数
3
解决办法
7万
查看次数

结构图控制器工厂和MVC中的空控制器实例

我还在尝试使用StructureMap来解决问题,而我遇到的一个问题是我的Controller Factory类在传递空控制器类型时会爆炸.这仅在应用程序第一次构建时发生,之后每个后续构建都可以正常工作.即使我关闭Visual Studio并重新打开项目(我没有在IIS中运行它).这几乎就像有某种缓存一样.这是控制器类的样子:

public class IocControllerFactory : DefaultControllerFactory
{
    protected override IController GetControllerInstance(Type controllerType)
    {
        try
        {
            return (Controller)ObjectFactory.GetInstance(controllerType);
        }
        catch (StructureMapException)
        {
            System.Diagnostics.Debug.WriteLine(ObjectFactory.WhatDoIHave());
            throw;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

可能有什么不对?我是否需要注册每个控制器?谢谢.

structuremap model-view-controller null controller

10
推荐指数
2
解决办法
4559
查看次数

解决PHP中的Windows环境变量

我想写入 Windows 临时目录中的文件。我知道在命令行中您可以使用环境变量%TEMP%来获取正确的路径,但是尝试执行以下操作:

file_put_contents("%TEMP%\\myfile.txt");
Run Code Online (Sandbox Code Playgroud)

...不起作用,因为环境变量没有得到解决。有没有办法做到这一点?

php windows environment-variables

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

如何在git中备份私有分支

我有一个本地分支,用于git中的日常开发工作.我的工作流程是:

  1. 在local_branch上做一些事情,提交
  2. 获取origin/master
  3. 重新定位local_branch以赶上来自origin/master的新东西

这一切都运行正常,但我遇到的大多数建议都说不应该"推"私人分支,定期执行rebase.

这里的问题是,在这种情况下,本地分支不会备份到服务器,保存工作的唯一方法是将其合并回"pushable"分支(即origin/master)

在这种情况下,您对工作流程的建议是什么?

谢谢!

更新:我意识到我有一个原始要求(避免使用外部实用程序)是不必要的限制.

我目前的解决方案是将所有存储库存储在云同步文件夹中 - 这样我就可以免费获得备份.

git merge workflow rebase dropbox

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

App Engine中超时异常的名称是什么?

出于某种原因,我的印象是它只是被称为超时,但似乎并非如此.

谢谢!

google-app-engine exception

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

protobuf和List <object> - 如何序列化/反序列化?

我有一个List<object>不同类型的对象,如整数,字符串和自定义类型.所有自定义类型都是protobuf调整.我现在要做的是使用protobuf.net序列化/反序列化此列表.到目前为止,我怀疑我必须明确地声明每个类型,遗憾的是这些混合列表结构是不可能的.因为二元形成器没有问题做这些事情我希望我错过了一些东西,你可以帮助我.所以我的问题是如何处理protobuf.net中的对象.

c# protobuf-net .net-3.5

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

为什么我在1024个连接后拒绝连接?

我正在本地Linux服务器上测试服务器和客户端在同一台服务器上.在大约1024个连接之后,在我的代码中,我连接的地方,我得到连接拒绝.起初我以为选择的fd_set_max限制为1024,并且更改了服务器进行轮询而不是选择,我仍然没有超过这个数字.我的ulimit -n设置为2048,我监视服务器上的lsof达到大约1033(不确定这是否是确切数字)并且失败.任何帮助深表感谢.

c sockets linux

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

如何减少XMLHttpRequest时滞?

我在注册表单上使用XMLHttpRequest来查看他们输入的用户名是否已被占用.脚本运行正常,但我注意到在发出请求时有一些时间延迟 - 网页在发送请求后冻结了一秒钟.

有没有办法让"在后台"请求并且不会导致前端出现任何延迟?我喜欢Twitter的实现:它在搜索数据库时显示一个旋转的沙漏图标.我如何得到类似的东西?

javascript ajax xmlhttprequest

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

围绕多个人分配美元金额的问题

在代码中解决此问题的最佳方法是什么?

问题是我有2美元的金额(称为底池),需要分配给3个人.每个人获得来自两个盆的特定数量,并且费率必须大致相同.我不断遇到问题,我的分配加起来太多或太少.

这是一个具体的例子:

锅#1 987,654.32
锅#2 123,456.78

人员#1获得分配金额:345,678.89
人员#2获得分配金额:460,599.73
人员#3获得分配金额:304,832.48

我的逻辑如下(代码在c#中):

foreach (Person person in People)
{
    decimal percentage = person.AllocationAmount / totalOfAllPots;

    decimal personAmountRunningTotal = person.AllocationAmount;

    foreach (Pot pot in pots)
    {
        decimal potAllocationAmount = Math.Round(percentage * pot.Amount, 2);
        personAmountRunningTotal -= potAllocationAmount;

        PersonPotAssignment ppa = new PersonPotAssignment();
        ppa.Amount = potAllocationAmount;

        person.PendingPotAssignments.Add(ppa);
    }

    foreach (PersonPotAssignment ppa in person.PendingPotAssignments)
    {
        if (personAmountRunningTotal > 0) //Under Allocated
        {
            ppa.Amount += .01M;
            personAmountRunningTotal += .01M;
        }
        else if (personAmountRunningTotal < 0) //Over Allocated …
Run Code Online (Sandbox Code Playgroud)

.net c# puzzle rounding

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