小编Ian*_*dby的帖子

查找listA是否包含不在listB中的任何元素

我有两个清单:

List<int> listA     
List<int> listB
Run Code Online (Sandbox Code Playgroud)

如何使用LINQ检查是否listA存在一个元素wichich deos不存在listB?我可以使用foreach循环,但我想知道我是否可以使用LINQ来做到这一点

c# linq

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

2038年嵌入式Linux(32位)解决方案?

在3238嵌入式Linux(ARMLinux)的C代码中处理时间的正确方法是什么,以确保代码在2038年1月19日03:14:07 UTC之后继续正常工作(当有符号的32位time_t溢出时)?鉴于time_t在我必须使用的系统上签名32位,有哪些替代方案?

大量的谷歌搜索没有发现任何实际用途.每个人似乎都认为到那时我们都将使用64位操作系统,但这显然不适用于嵌入式系统.

在我需要使用的系统上,__kernel_time_t定义为a long.这可能意味着64位时间没有内核工具.uClibc的版本是0.9.29.

我不敢相信我是唯一有这个问题的人,我不想重新发明轮子.

c 32-bit uclibc embedded-linux year2038

23
推荐指数
2
解决办法
3294
查看次数

HTTP 1.1合规性测试

我想知道是否有一个软件允许自动测试Web服务器是否符合HTTP协议?理想情况下,我希望这个程序像这样工作:我给它地址和端口,它运行一堆请求,然后输出"不合规","有条件合规","完全合规"之一.

谢谢

testing automated-tests protocols http standards-compliance

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

找到最优组的算法

设备包含一系列位置,其中一些包含我们想要定期读取的值.

我们要定期阅读的位置列表还指定了我们想要阅读它们的频率.允许更频繁地读取值而不是更少.

单个读取操作可以从阵列读取连续的位置序列,因此可以从一个读取操作返回一组多个值.在单个操作中可以读取的最大连续位置数是M.

目标是对位置进行分组,以便最小化读取操作的时间平均数.如果有多种方法可以做到这一点,那么决胜局就是最大限度地缩短读取的时间平均位置数.

(奖励分数,如果算法来做到这一点允许位置列表中的增量变化 - 即增加或从列表中删除一个位置/不需要从头开始重新计算分组)

我将尝试用M = 6的一些例子来澄清这一点.

下图显示了位置数组.数字代表该位置的所需读取周期.

| 1 | 1 |   |   | 1 |   |   |   |   |   | 5 |   | 2 |
\-------------------/                   \-----------/
     group A                               group B
Run Code Online (Sandbox Code Playgroud)

在该第一示例中,每秒读取组A,每2秒读取组B. 请注意,应该每隔5秒读取一次应该每5秒读取一次的位置 - 这很好.

| 1 |   |   |   |   | 1 | 1 |   | 1 |
\-----------------------/\----------/
         group A            group B         (non-optimal!)
Run Code Online (Sandbox Code Playgroud)

这个例子显示了我最初的简单算法的失败,即将第一组填满直到满,然后再启动另一组.以下分组更为理想,因为尽管每秒的组读取数相同,但在这些组中读取的位置数较少:

| 1 |   |   |   |   | 1 | 1 |   | 1 |
\---/               \---------------/
group A                  group …
Run Code Online (Sandbox Code Playgroud)

algorithm grouping

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

FastMM4,DebugGetMem中偶尔的访问冲突

我正在尝试追踪访问冲突.再现性似乎是非确定性的,并且很少见,因此我想在进一步研究之前检查一些我的假设.

在以下代码中,在函数DebugGetMem中的FaseMM4版本4.991中引发了访问冲突:

if (ASize > (MaximumMediumBlockSize - BlockHeaderSize - FullDebugBlockOverhead))
    or CheckFreeBlockUnmodified(Result, GetAvailableSpaceInBlock(Result) + BlockHeaderSize, boGetMem) then
  begin
    {Set the allocation call stack}
    GetStackTrace(@PFullDebugBlockHeader(Result).AllocationStackTrace, StackTraceDepth, 1);
    {Set the thread ID of the thread that allocated the block}
    PFullDebugBlockHeader(Result).AllocatedByThread := GetThreadID; // ** AV Here
    {Block is now in use: It was allocated by this routine}
    PFullDebugBlockHeader(Result).AllocatedByRoutine := @DebugGetMem;
Run Code Online (Sandbox Code Playgroud)

例外是:

if (ASize > (MaximumMediumBlockSize - BlockHeaderSize - FullDebugBlockOverhead))
    or CheckFreeBlockUnmodified(Result, GetAvailableSpaceInBlock(Result) + BlockHeaderSize, boGetMem) then
  begin
    {Set the allocation call stack} …
Run Code Online (Sandbox Code Playgroud)

delphi fastmm access-violation

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

无法嵌套TFS分支,因此分支共享代码不起作用?

我一直在下面的意见"团队开发使用Visual Studio Team Foundation Server的"关于结构工程从一个团队项目中共享代码到另一个分支使用.所以我们的源代码树看起来像这样:

server\instance
  Shared
    share
  Project1
    Main
      Product1
      share   (branched into Project1 from Shared)
    Stories
      1607
      1832
Run Code Online (Sandbox Code Playgroud)

或者至少它应该.

正如您所看到的,以及在某些共享代码中的分支,我们还使用每个用户故事的分支.

问题是,当我尝试从共享项目(源分支名称:$ /共享/共享;目标分支名称:$/Project1/Main/share)分支共享文件夹时,我收到错误:

TF203028:您无法在$/Project1/Main/share上创建分支,因为$/Project1/Main中已存在分支.

据记载,您无法在TFS中嵌套分支,因此错误并不令人惊讶.因此,似乎我被打破了,团队发展书是错误的.(这本书暗示这应该有效.)

但外表可能具有欺骗性,而且我比书中的作者更容易出错.任何人都可以帮我理解如何解决这个问题?

(一个明显的解决方案是让故事的根源成为共享的兄弟,而不是父母.但这对我们没有任何用处,因为这意味着我们将无法对共享进行更改故事分支中的代码,相当于每个故事的分支对象.这也意味着在项目中改变路径的工作量相当庞大.)

tfs branch shared

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

git add -N后跟git stash - "无法合并"

我需要存储一组包含新文件的更改 - 不删除被忽略的目录.

所以我尝试了这个:

git add --intent-to-add myNewFile.txt
git stash
Run Code Online (Sandbox Code Playgroud)

结果是:

error: Entry 'myNewFile.txt' not uptodate. Cannot merge.
Cannot save the current worktree state
Run Code Online (Sandbox Code Playgroud)

如何隐藏已修改的文件以及一个或多个选定的新文件,但不影响任何其他文件或目录(特别是那些文件或目录.gitignore)?

(这不是我如何git存储特定文件的重复因为这个问题是如何存储以前添加过的文件.我的问题是存储一个尚未添加的文件.)

git git-stash

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

PChar('')是否保证是指向#0(不是nil)的指针?

据我所知,在Delphi中,空字符串(AnsiString或WideString)可以用nil指针表示,也可以用指向实际空字符串的指针表示.

通过实验我已经在Delphi XE2中显示了(具有特定的编译器设置)PChar('') <> nil.但这是保证,还是可能在未来的版本中更改,或依赖于某些编译器设置?

我有一种信心危机.如果有人能给我一个明确的答案,我将不胜感激.

delphi string null null-terminated pchar

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

我可以在Windows XP或7上使用最新的.NET框架吗?

我正在开发一个必须在Windows XP,7,8(桌面模式)上运行的应用程序.我可以使用哪个版本的.net?

如果此版本不是XP或Windows 7的默认部分,将它包含在我的应用程序安装程序中是否是个好主意?

.net windows windows-xp windows-7

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

确保在线程自毁之前完成所有TThread.Queue方法

我发现如果一个排队的方法TThread.Queue调用一个调用TApplication.WndProc(例如ShowMessage)的方法,那么允许后续的排队方法在原始方法完成之前运行.更糟糕的是,它们似乎没有按FIFO顺序调用.

[编辑:实际上他们确实以FIFO顺序开始.有了ShowMessage它看起来像一个后来跑了第一,因为有一个呼叫CheckSynchronize出现的对话框中之前.这会使下一个方法出错并运行它,直到后一个方法完成才返回.只有这样才会出现对话框.]

我正在尝试确保从工作线程排队的所有方法在VCL线程中运行以严格的FIFO顺序运行,并且它们都在工作线程被销毁之前完成.

我的另一个限制是我试图保持GUI与业务逻辑的严格分离.在这种情况下,线程是业务逻辑层的一部分,所以我不能使用PostMessage从一个OnTerminate处理程序的线程被破坏(如在别处推荐由多个贡献者)安排.所以我FreeOnTerminate := True在TThread.Execute退出之前设置了最终的排队方法.(因此需要它们以严格的FIFO顺序执行.)

这是我的TThread.Execute方法结束的方式:

finally
  // Queue a final method to execute in the main thread that will set an event
  // allowing this thread to exit. This ensures that this thread can't exit
  // until all of the queued procedures have run.
  Queue(
    procedure
    begin
      if Assigned(fOnComplete) then
      begin
        fOnComplete(Self);
        // Handler sets fWorker.FreeOnTerminate := True and fWorker := nil …
Run Code Online (Sandbox Code Playgroud)

delphi multithreading

8
推荐指数
3
解决办法
2590
查看次数