小编jny*_*len的帖子

C# 中的密集文件 I/O 和数据处理

我正在编写一个需要处理大型文本文件的应用程序(用逗号分隔的几种不同类型的记录 - 我没有权力或倾向更改数据存储格式)。它读入记录(通常是按顺序读取文件中的所有记录,但并非总是如此),然后将每个记录的数据传递给一些处理。

现在这部分应用程序是单线程的(读取记录,处理它,读取下一条记录等)我认为在一个线程中读取队列中的记录并在另一个线程中处理它们可能更有效线程在小块中或在它们可用时。

我不知道如何开始编写类似的程序,包括必要的数据结构或如何正确实现多线程。任何人都可以提供任何指示,或提供有关我如何提高性能的其他建议吗?

c# multithreading data-processing

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

如何在Perl中打开二进制文件,只更改第一个字节,然后将其写回?

非常类似于在C中更改文件中的一个字节,但在Perl中而不是C中.

如何在Perl中打开二进制文件,只更改第一个字节,然后将其写回?

perl binaryfiles

5
推荐指数
2
解决办法
3583
查看次数

表示Haskell中四面体数的序列

我一直想要学习一些Haskell,我知道它和类似的语言对各种无限列表都有很好的支持.那么,我怎样才能在Haskell中表示四面体数的序列,最好解释一下发生了什么?

0   0   0
1   1   1
2   3   4
3   6   10
4   10  20
5   15  35
6   21  56
7   28  84
8   36  120
Run Code Online (Sandbox Code Playgroud)

如果不清楚那里发生了什么,第二列是第一列的运行总计,第三列是第二列的运行总计.我更喜欢Haskell代码保留一些"运行总计"的方法,因为这是我想知道如何表达的概念.

haskell list

5
推荐指数
2
解决办法
552
查看次数

使用 GitHub 的 GraphQL API,我如何知道谁关闭了问题或拉取请求?

给定问题或拉取请求编号,我希望使用对GitHub GraphQL API 的单个查询来获取以下信息:

  • 无论是问题还是拉取请求
  • 问题的状态(开放、关闭)或 PR(开放、关闭、合并)
  • 如果问题或 PR 已关闭,由谁关闭以及何时关闭
  • 如果问题或 PR 被合并,谁合并的以及何时合并的

使用以下查询,除了确定关闭了问题或 PR 之外,我可以完成所有这些工作:

{
  repository(owner: "Automattic", name: "wp-calypso") {
    issueOrPullRequest(number: 23226) {
      __typename
      ... on Closable {
        closed
        closedAt
        # TODO: How to get ClosedEvent { actor } ?
      }
      ... on Issue {
        issueState: state
        title
      }
      ... on PullRequest {
        prState: state
        title
        merged
        mergedAt
        mergeCommit {
          committer {
            user {
              login
            }
          }
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我正在使用 GitHub …

github-api graphql

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

JS:在数组中查找未配对的元素

我有以下问题(这不是学校,仅是代码站点练习问题),我看不到我的解决方案缺少什么。

给出了一个由N个整数组成的非空数组A。该数组包含奇数个元素,并且该数组的每个元素都可以与另一个具有相同值的元素配对,除了一个未配对的元素。

假使,假设:

  • * N为[1..1,000,000]范围内的奇数整数;
  • *数组A的每个元素都是[1..1,000,000,000]范围内的整数;
  • * A中除一个值以外的所有值均出现偶数次。

例如:A = [9,3,9,7,9]结果:7

官方解决方案是使用按位XOR运算符:

function solution(A) {

    var agg = 0;

    for(var i=0; i<A.length; i++) {
        agg ^= A[i];
    }

    return agg;
}
Run Code Online (Sandbox Code Playgroud)

我的第一个直觉是在Map查找表中跟踪每个值的出现,并返回唯一值仅出现一次的键。

function solution(A) {

    if (A.length < 1) {return 0}
    let map = new Map();
    let res = A[0]
    for (var x = 0; x < A.length; x++) {
        if (map.has(A[x])) {
            map.set(A[x], map.get(A[x]) + 1)
        } else {
            map.set(A[x], 1)
        }
    }
    for ([key,value] of map.entries()) {
        if …
Run Code Online (Sandbox Code Playgroud)

javascript

5
推荐指数
2
解决办法
400
查看次数

禁用警告解决方案不受源代码控制的警告?

可耻的是,我们在工作中为C#项目使用TFS。我希望我们可以转到svn或git,但不能更改它。我们从事该项目的所有人都讨厌TFS的自动检出“功能”,因此我们将解决方案和项目文件签入为TFS的未绑定对象。

现在,无论何时打开项目,我们都会收到以下消息:

您打开的解决方案处于源代码管理下,但当前未在Visual Studio中配置为集成源代码管理。您现在要将此解决方案绑定到源代码控制吗?

有没有办法禁用此消息,同时又使解决方案不受越野车和烦人的集成源代码控制的束缚?

tfs tfs2008 visual-studio

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

在 Linux 中,有没有办法在分隔符上对齐文本?

我有一个基本上运行的脚本tmux ls

session1: 3 windows (created Fri Sep 20 13:16:13 2013) [157x56]
stuff: 3 windows (created Fri Sep 20 13:25:21 2013) [157x56]
asdf: 2 windows (created Sun Sep 29 23:06:33 2013) [77x17] (attached)
website: 1 windows (created Tue Sep 24 17:22:14 2013) [157x26]
Run Code Online (Sandbox Code Playgroud)

我希望该脚本的输出在冒号处对齐,以提高可读性。我知道如何使用,column -t但它并不能完全满足我的要求(请注意双倍间距,并且冒号实际上并未对齐):

session1:  3  windows  (created  Fri  Sep  20  13:16:13  2013)  [157x56]
stuff:     3  windows  (created  Fri  Sep  20  13:25:21  2013)  [157x56]
asdf:      2  windows  (created  Sun  Sep  29  23:06:33  2013)  [77x17]   (attached) …
Run Code Online (Sandbox Code Playgroud)

linux shell sed text-alignment

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

表格单元格中的文本只能在悬停时换行,否则应以省略号结尾

要求:

我有一个表格,其中某些表格单元格可能包含很长的文本(根本没有空格或有空格)。现在,我不希望显示所有冗长的文本,这只会使特定的列变得很长。相反,如果该单元格中的文本超过该单元格的特定长度或最大宽度,我希望该文本类似于“sffasfashdsjfs...”。

仅当我将鼠标悬停在该表格单元格上时,才应显示换行的文本(即使文本没有空格)。

我尝试使用CSS:

td
{
min-width:50px;
max-width: 300px;
overflow:hidden;
text-overflow:ellipsis;
}


td:hover
{
min-width:50px;
max-width :300px;
position:relative; // the cell adjusts its width to show the text
word-break: break-all; // for wrapping the text with no white spaces
}
Run Code Online (Sandbox Code Playgroud)

结果:

当鼠标悬停在该单元格上时,文本确实会换行,但问题是这不能以统一的方式工作。一些不超过最大宽度的表格单元格也采用较小的宽度,其中的文本换行,并且一些表格单元格不占用最大宽度。

我需要所有单元格首先占据其最大宽度,然后在悬停时换行,并且文本小于最大宽度的单元格应保持不受影响。我也不希望修复表格布局。

为此需要一个 CSS 解决方案(而不是 javascript 解决方案)。

任何解决此问题的方法都受到高度赞赏。

html css html-table word-wrap

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

在ggplot2中添加手动图例?

我正在对相同时间序列数据的两个不同估计进行比较图表.如果原始估计值超过最新估计值,我将以绿色填充两个系列之间的区域,否则为红色.

我有那部分工作,但我想为填充颜色添加一个图例.我尝试scale_fill_manual了代码的底部,但它似乎没有做任何事情?

这是代码:

library(ggplot2)
library(scales)
library(colorspace)

# Return a polygon that only plots between yLower and yUpper when yLower is
# less than yUpper.
getLowerPolygon = function(x, yLower, yUpper) {
    # Create the table of coordinates
    poly = data.frame(
        x = numeric(),
        y = numeric())

    lastReversed = (yUpper[1] < yLower[1])
    for (r in 1:length(x)) {
        reversed = (yUpper[r] < yLower[r])
        if (reversed != lastReversed) {
            # Between points r-1 and r, the series intersected, so we need to …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

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

锁定传递给其他线程的对象会发生什么?

我不太清楚怎么说这个,所以我只是粘贴我的代码并提出问题:

private void remoteAction_JobStatusUpdated(JobStatus status) {
    lock (status) {
        status.LastUpdatedTime = DateTime.Now;
        doForEachClient(c => c.OnJobStatusUpdated(status));
        OnJobStatusUpdated(status);
    }
}

private void doForEachClient(Action<IRemoteClient> task) {
    lock (clients) {
        foreach (KeyValuePair<RemoteClientId, IRemoteClient> entry in clients) {
            IRemoteClient clientProxy = entry.Value;
            RemoteClientId clientId = entry.Key;
            ThreadPool.QueueUserWorkItem(delegate {
                try {
                    task(clientProxy);
#pragma warning disable 168
                } catch (CommunicationException ex) {
#pragma warning restore 168
                    RemoveClient(clientId);
                }
            });
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

假设修改status对象的任何其他代码将首先获得对它的锁定.

由于status对象一直传递到多个ThreadPool线程,并且调用ThreadPool.QueueUserWorkItem将在实际任务完成之前完成,我是否确保将相同的status对象发送到所有客户端?

换句话说,lock (status) …

c# multithreading threadpool

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