小编Dre*_*fer的帖子

有没有理由比CefGlue更喜欢CefSharp(反之亦然)?

在为.Net提供体面的Chromium Embedded Framework(CEF)实现方面,两个主要选项似乎是CefSharp和CefGlue.它们的方法不同(CefGlue使用P/Invoke调用CEF非托管代码,CefSharp使用围绕CEF库的混合模式C++/CLI包装器).

是否有某种原因混合模式汇编比P/Invoke调用更好?在所有其他条件相同的情况下,似乎CefGlue(P/Invoke lib)为CEF项目提供了一个"更薄"的包装器,这意味着响应上游库中的更新可能会更快.

那里有没有经验的两个图书馆谁可以分享差异化因素?

.net pinvoke webkit c++-cli chromium

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

c ++使用数组作为成员初始化结构

再次编辑,因为我最初并不清楚我是否正在尝试在编译时初始化数组,而不是在运行时...


我有以下简化的测试用例:

typedef struct TestStruct
{
    int length;
    int values[];
};

TestStruct t = {3, {0, 1, 2}};
TestStruct t2 = {4, {0, 1, 2, 3}};

int main()
{
    return(0);
}
Run Code Online (Sandbox Code Playgroud)

这适用于Visual C++,但不能在linux下用g ++编译.任何人都可以帮助我使这种特定的初始化器可移植吗?

其他细节:我正在使用的实际结构有几个其他int值,并且数组的长度范围可以从单个条目到超过1800个条目.

编辑:我认为(但不确定)这不是VLA问题.为了澄清,我正在尝试让编译器在编译时为我完成工作.运行时数组的长度是不变的.如果我错了,请道歉; 我主要是ac#/ Perl/Ruby程序员,他们坚持维护这个遗留应用程序......

任何帮助非常感谢.谢谢!

c++ portability struct initialization

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

我可以在c#app中获取所有线程的堆栈跟踪吗?

我正在调试一个明显的并发问题,这是一个我在工作中遇到的大应用程序.有问题的错误仅在运行了许多(12+)小时后出现在某些性能较低的机器上,我从未在调试器中重现它.因此,我的调试工具基本上只限于分析日志文件.

C#可以很容易地获得抛出异常的线程的堆栈跟踪,但是我还想在抛出异常时另外获取当前在我的AppDomain中执行的每个其他线程的堆栈跟踪.

这可能吗?

c# debugging concurrency multithreading stack-trace

22
推荐指数
2
解决办法
6294
查看次数

如果文本模式视频缓冲区不在0xB8000,那么它在哪里?

大约15年前,我曾经自娱自乐,并通过编写直接修改显示器上文本的错误代码来惹恼我的CS老师.这可以通过在配备VGA的PC兼容机上访问0xB8000的视频内存来轻松完成.

快进到今天,我决定通过调试端口尝试我的旧技巧,让我可以访问读取物理内存.令我满意的是,它仍然在我尝试过的第一个平台上工作.然后,令人沮丧的是,我发现它不适用于许多其他系统.它似乎不适用于所有系统都有UMA(共享内存)图形.

因此,对于所有BIOS编写者,低级操作系统人员和视频驱动程序专家的问题 - 如果我在具有共享图形内存的PC兼容系统上的常规80x25颜色文本模式,在实模式下,以及0xb8000 - 0xB8FFF都是0xFF,而不是给我屏幕上的内容,屏幕缓冲区在哪里?

graphics dos vga

21
推荐指数
2
解决办法
4665
查看次数

JavaScript是否已准备好可视化大型数据集?

我们通常在Excel中将一些数据(10-50列,数十万行)可视化为折线图或堆积条形图.
用户希望能够放大和缩小图表以获得单个样本,但这些操作确实让Excel瘫痪.

我正在考虑将数据嵌入到HTML页面中,使用内联JavaScript来处理浏览器中的可视化.像flotr JS charting lib这样的东西可以用于图表.

  1. 这是一个愚蠢的想法吗?
  2. 浏览器是否已准备好进行此类加载?
  3. 这是一个解决的问题,我应该在问之前用Google搜索更彻底吗?

javascript browser dom visualization flot

12
推荐指数
2
解决办法
2765
查看次数

如何在Process.StandardOutput中禁用输出缓冲

这个问题不止一次被问过,但我在任何讨论中都没有找到满意的答案.

我正在启动一个命令行过程,它可以对STDOUT进行实时测量,大约每秒产生一个新结果.使用System.Diagnostics.Process.StandardOutput导致完全不可接受的延迟(超过20秒),因为STDOUT数据通过Process.StandardOutput StreamReader中的4k缓冲区工作,并且似乎没有任何方法可以解决这个问题.

调用Process.StandardOutput.BaseStream.Flush()不起作用.

我试过对Process.StandardOutput进行逐字节同步读取,但是我仍然比实际输出落后4k.

任何人都可以至少验证我有可能以某种方式克服我重定向STDOUT时遇到的所有缓冲问题,并且一旦它出现在shell窗口中就会立即收到我的应用程序中的数据吗?我可以继承Process类并更改StandardOutput流读取器的行为吗?我是否需要查看原始的WINAPI呼叫?

不知何故,这必须要完成,即使我最终编写非托管C++来启动任务并使用输出,并将其连接起来.任何帮助都非常感谢; 我的智慧结束了......

编辑:看来我需要的是可用于C/C++,Perl,Python和Java的"期望"库的.Net实现(这是迄今为止我发现的唯一库).有谁知道这样的野兽是否存在?

c# winapi process expect buffering

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

我可以分析在Redis中运行的Lua脚本吗?

我有一个使用分布式Redis后端的集群应用程序,动态生成的Lua脚本被分派到redis实例.Lua组件脚本可能变得相当复杂并且具有显着的运行时间,并且我希望能够对它们进行分析以找到热点.

SLOWLOG 对于告诉我脚本很慢,以及它们的速度有多慢很有用,但这不是我的问题.我知道它们有多慢,我想弄清楚它们哪些部分很慢.

redis EVAL文档很清楚redis不会将任何计时功能导出到lua,这使得它看起来可能是一个失败的原因.

那么,简短一个Redis的自定义分支,有没有办法告诉我的Lua脚本哪些部分比其他部分慢?

编辑 我接受了Doug的建议并使用了debug.sethook - 这是我在脚本顶部插入的钩子例程:

redis.call('del', 'line_sample_count') 
local function profile() 
  local line = debug.getinfo(2)['currentline'] 
  redis.call('zincrby', 'line_sample_count', 1, line) 
end 
debug.sethook(profile, '', 100)
Run Code Online (Sandbox Code Playgroud)

然后,看看我脚本中最热门的10行:

ZREVRANGE line_sample_count 0 9 WITHSCORES
Run Code Online (Sandbox Code Playgroud)

lua profiling redis

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

如何使用Excel.Range.set_Value()指定单个单元格的格式

当我将整个表写入excel工作表时,我知道一次使用整个Range,而不是写入单个单元格.但是,有没有办法指定格式,因为我正在填充我要导出到Excel的数组?

这就是我现在所做的:

object MissingValue = System.Reflection.Missing.Value;
Excel.Application excel = new Excel.Application();
int rows = 5;
int cols = 5;
int someVal;

Excel.Worksheet sheet = (Excel.Worksheet)excel.Workbooks.Add(MissingValue).Sheets[1];
Excel.Range range = sheet.Range("A1", sheet.Cells(rows,cols));
object[,] rangeData = new object[rows,cols];
for(int r = 0; r < rows; r++)
{
    for(int c = 0; c < cols; c++)
    {
        someVal = r + c;
        rangeData[r,c] = someVal.ToString();
    }
}
range.set_Value(MissingValue, rangeData);
Run Code Online (Sandbox Code Playgroud)

现在假设我希望将这些数字中的一些格式化为百分比.我知道我可以逐个单元地返回并更改格式,但这似乎打败了使用单个Range.set_Value()调用的整个目的.我可以使我的rangeData [,]结构包含格式化信息,这样当我调用set_Value()时,单元格的格式是我想要的吗?

为了澄清,我知道我可以设置整个Excel.Range对象的格式.我想要的是为内部循环中指定的每个单元格指定不同的格式.

.net c# excel interop

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

我可以对C#System.Threading.ThreadPool进行分区吗?

我喜欢ThreadPool.它让我的生活更美好.然而,我的爱情可能已经悄然变成了一种我需要逃避的虐待关系,所以我需要一些来自我的兄弟们的建议(大概是姐妹们,虽然我还没有看到任何实际的证据).

我的基本问题是我有几个不同的库都以不协调的方式使用线程池,并且可能会耗尽线程.我希望有一些方法可以将ThreadPool分区,所以我可以给出一个特定的1类线程,另外20个线程,另外5个线程,等等.

我知道我可以编写自己的ThreadPool实现.我不想这样做,因为我很懒.那么,那里有一个简单的解决方案吗?

目前我受限于使用3.5 CLR.我知道很多这样的东西在4.0中变得更容易了.

c# threadpool

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

TestFlight必须满足哪些条件才能将活动发送到服务器?

我试图理解:在Android上,TestFlight如何确定它处于beta测试环境中,并且应该将活动上传到TestFlight服务器?在iOS上 有一些类似的 问题询问TestFlight,但没有一个与Android有关.

我已将TestFlight SDK集成到我公司的Android应用程序中,因为它看起来像是beta测试和远程日志记录的一个很好的解决方案(我们已经将它用于iOS),但我无法让它实际发送会话信息到TestFlight服务器.一旦我通过TestFlight应用程序安装我的应用程序,我立即看到它是通过TestFlight Web控制台安装的,然后是... nada.我没有得到会话数据或远程日志,即使我显然应该得到一些东西.

到目前为止我做了什么:

  • 四重检查了我的TestFlight api密钥
  • 已确认TestFlight.takeOff()已被调用
  • 验证了该TestFlight.isActive()报告true
  • 尝试使用仅调试密钥对apk进行签名
  • 尝试使用我们的释放密钥签署apk
  • 检查android日志中与TestFlight相关的错误(无)
  • 几天前联系的TestFlight支持(我已经联系,但还没有进展)

我目前的猜测是TestFlight lib认为它在生产环境中,因此它不应该上传日志和会话信息.

SDK文档无关提供回答这个问题,但我觉得,如果我的理解是找什么条件,我可以钉下来很快.

我闯入TestFlightLib.jar,发现它TestFlight.isActive()实际上只是报告你是否已经调用过TestFlight.takeOff(),所以这并不是一个好的指标,表明整个系统是否正常工作.

android testflight

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

Toopher API:消息"不是有效的OAuth签名请求"是什么意思?

我试图让Toopher使用SSH,我遇到了这个错误:

Not a valid OAuth signed request.  See http://oauth.net to learn more.
Run Code Online (Sandbox Code Playgroud)

提前致谢!

编辑:这是一个虚拟机计时错误.谢谢!

api oauth toopher

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