问题列表 - 第14008页

遍历目录树

我试图遍历给定目录并创建以.jpg结尾的文件列表.

(setq files (list ))

(defun jpg-list(directory)  
  (dolist (node (directory-files directory t ) )
      (if (file-directory-p node)      
          (if (not 
           (string= (substring node (- (string-width node) 1)) "."))
             (jpg-list node))
    (if (string-match ".jpg" node)
        (setq files (cons node files)))))
  files)
Run Code Online (Sandbox Code Playgroud)

我想这样做而不使用外部变量(文件).在elisp中这样做的惯用方法是什么?

emacs elisp

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

是否有一种简单的方法可以在两个List <T>之间进行转换?

var candidates = (from l in db.GetLeads(lat, lon, role, radius + 10)
                  orderby l.Distance
                  select l);
        return (List<CandidateResult>)candidates;
Run Code Online (Sandbox Code Playgroud)

c# generics linq-to-sql

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

多线程WebRequest调用和争用

我正在运行一个多线程的C#控制台应用程序.核心流程检索要处理的一些数据,将其拆分为可配置数量的较小数据集,然后生成相同数量的线程以处理每个数据子集.

要处理单个记录,线程必须使用WebRequest类和POST方法调用Web服务.查询与GetRequestStream()一起发送,并使用GetResponse()检索响应.

在伪代码中,例程看起来像这样:

prepare WebRequest data;
* get time (start-of-Processing);
Stream str = request.GetRequestStream();
Write data to stream;
stream.Close();
WebResponse resp = request.GetResponse();
* get time (response-received);
process response;
finally close response stream;
Run Code Online (Sandbox Code Playgroud)

时序数据表明,当我们将数据分成4个以上的线程时,整个过程的吞吐量不会提高,有时甚至会下降.来自Web服务的定时数据保持其性能保持不变.

  • 在4个线程中,我们发送数据和检索响应流的明显开销大约为一秒.
  • 当我们运行超过4个线程时,平均值会上升,最大值会遇到几十秒!

今天我能够运行两个独立的进程,每个进程运行4个线程(但基本上确保每个线程仍在独特的数据上运行).这次,我们的整体吞吐量几乎翻了一番,每个流程都有大约一秒钟的稳定时间.

这让我相信我们对WebRequest类的资源有某种限制; 但它是每个进程的限制,而不是机器限制.我知道我们可以使用BeginGetRequestStream和BeginGetResponse异步调用我们的调用,但我怀疑如果我们实际上达到某种资源限制会产生积极影响吗?!

我应该注意什么才能使我们在单一过程中提高分割数量而不会降低性能?

c# multithreading httpwebrequest

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

有没有办法让代码契约与LINQ一起使用?

代码契约一直给我"可能在空引用上调用一个方法"警告所有我的LINQ语句,我找不到一种方法来使它们静音.例如,以下方法生成两个这样的警告,因为我正在访问"car"对象的"Make"和"Model"属性,而不首先检查null.

    public IEnumerable<string> GetCarModelsByMake(string make)
    {
        return from car in Cars
               where car.Make == make
               select car.Model;
    }
Run Code Online (Sandbox Code Playgroud)

在我的特定情况下,我知道Cars集合永远不会包含任何空条目,所以我想我可以在方法中添加一个Assume来静音静态检查器,如下所示:

    public IEnumerable<string> GetCarModelsByMake(string make)
    {
        Contract.Assume(Cars.All(car => car != null));

        return from car in Cars
               where car.Make == make
               select car.Model;
    }
Run Code Online (Sandbox Code Playgroud)

但这不起作用,大概是因为期望静态检查器理解它有点太多了.所以,我决定使用以下SuppressMessage属性来禁止警告:

    [SuppressMessage("Microsoft.Contracts", "NonNull")]
Run Code Online (Sandbox Code Playgroud)

但由于某种原因,这无法抑制警告.我甚至尝试了以下SuppressMessage属性,其中没有一个工作:

    [SuppressMessage("Microsoft.Contracts", "Requires")]
    [SuppressMessage("Microsoft.Contracts", "Ensures")]
    [SuppressMessage("Microsoft.Contracts", "Invariant")]
Run Code Online (Sandbox Code Playgroud)

我甚至尝试使用ContractVerification属性完全禁用该方法的合同验证:

    [ContractVerification(false)]
Run Code Online (Sandbox Code Playgroud)

但这也不起作用.所以,我决定在LINQ语句的"where"子句中添加一个显式的空检查:

    public IEnumerable<string> GetCarModelsByMake(string make)
    {
        return from car in Cars
               where car != null && car.Make == make
               select car.Model;
    }
Run Code Online (Sandbox Code Playgroud)

这成功地消除了"where"子句的警告,但它没有消除"select"子句的警告.事实上,我发现实际上摆脱两个警告的唯一方法是向LINQ语句中的每个子句添加空检查,如下所示:

    public IEnumerable<string> GetCarModelsByMake(string make) …
Run Code Online (Sandbox Code Playgroud)

.net c# linq code-contracts

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

使用Selenium使用母版页测试ASP.NET站点

在处理使用母版页在ASP.NET页面上呈现的控件的更改"名称"和"Id"属性时,避免Selenium测试被破坏的有效方法是什么?当ASP.NET使用不同的DOM标识符呈现网页控件时,我想避免更改我的测试.

html asp.net selenium

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

有没有工具可以将旧版VML转换为SVG?

只是想知道是否有人遇到过一个工具或任何东西,使这个过程更容易将VML转换为SVG或其他一些现代格式(Silverlight,flash).

我正在处理一些传统的VML浏览器渲染,我想让它与浏览器兼容.现在,vml正在服务器端生成.

如果有一个图表将VML标记映射到SVG,以表格格式作为备忘单或其他内容,也会有所帮助.

谢谢

asp.net svg vml

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

填充数据表的.Net System.OutOfMemoryException

我需要从.dbf文件中提取数据并将其转换为xml.我写了一个例程,它做得很好.但是现在我们遇到了非常大的.dbf文件 - 比如2GB +.此代码会对这些文件抛出OutOfMemoryException.

Public Function GetData() As DataTable
    Dim dt As New DataTable(Name)
    Dim sqlcommand As String= "Select * From MyTable"
    Dim cn As New OleDbConnection(myconnectionstring)

    Try
        cn.Open()
        Dim cmd As New OleDbCommand(sqlcommand, cn)
        dt.Load(cmd.ExecuteReader())
    Catch ex As Exception
        Throw ex
    Finally
        dt.Dispose()
        cn.Close()
        cn.Dispose()
    End Try
    Return dt
Run Code Online (Sandbox Code Playgroud)

问题是 - 如果我在我的计算机上通过Visual Studio在调试模式下针对相同的2GB .dbf文件运行相同的代码,则不会抛出任何异常.它几乎就像Visual Studio管理内存的方式与应用程序单独管理不同.

反正有没有解决内存问题?我尝试过使用具有类似结果的DataAdapter.我在Visual Studio预期/设计中看到的这种行为是什么?

.net vb.net oledb dbf dataset

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

用&符号解析XML

我有一个包含XML的字符串,我只想解析成Xelement,但它有一个&符号.我仍然有问题用HtmlDecode解析它.有什么建议吗?

string test = " <MyXML><SubXML><XmlEntry Element="test" value="wow&" /></SubXML></MyXML>"; 

XElement.Parse(HttpUtility.HtmlDecode(test));
Run Code Online (Sandbox Code Playgroud)

我还添加了这些方法来替换这些字符,但我仍然得到XMLException.

string encodedXml = test.Replace("&", "&amp;").Replace("<", "&lt;").Replace(">", "&gt;").Replace("\"", "&quot;").Replace("'", "&apos;");
XElement myXML = XElement.Parse(encodedXml);
Run Code Online (Sandbox Code Playgroud)

或者甚至尝试过这个:

string newContent=  SecurityElement.Escape(test);
XElement myXML = XElement.Parse(newContent);
Run Code Online (Sandbox Code Playgroud)

c# xml xelement

16
推荐指数
3
解决办法
4万
查看次数

实现IP摄像头

我们有一台配有模拟摄像头的设备.我们有一张卡片可以对其进行采样并将其数字化.这一切都在directx中完成.此时,替换硬件不是一种选择,但我们需要编码,以便我们可以实时看到此视频源,无论将来是否发生任何硬件或底层操作系统更改.

沿着这条线,我们选择了Qt来实现一个GUI来查看这个摄像头输入.但是,如果我们将来迁移到Linux或其他嵌入式平台并更换其他硬件(包括摄像机/视频采样器所在的物理设备),我们也需要更换摄像机显示软件,这将是痛苦是因为我们需要将它集成到我们的GUI中.

我提出的是迁移到更抽象的模型,其中数据通过套接字发送到GUI,并且视频在从套接字流解析后实时显示.

首先,这是一个好主意还是一个坏主意?

其次,你会如何实现这样的事情?视频采样器通常如何提供可用的输出?如何将此输出推到套接字上?一旦我在接收端解析输出,我怎么知道如何处理输出(如何如何获得输出渲染)?我唯一能想到的是将每个样本写入文件,然后在每次新样本到达时显示文件的内容.这对我来说似乎是一个低效的解决方案,如果它可以工作的话.

你怎么建议我处理这个?有没有可用于这种事情的跨平台库?

谢谢.

编辑:我愿意接受不同的建议,而不是上面列出的内容.

sockets qt live-video ip-camera

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

在java中编写脚本化BIRT数据源时访问参数

我正在使用带有脚本化POJO数据源的BIRT报告,并且无法访问报告参数.我用Java编写所有内容,而不是javascript.代码如下:

public class StockDataSetHandler extends ScriptedDataSetEventAdapter {
 ...

 @Override
 public void open(IDataSetInstance dataSet) {
  count = 0;
  StockDaoMock mockStockDao = new StockDaoMock();
  //The code below works in javascript. How can I do the equivalent
  //in Java? Where do I get params from?
  String paramValue = params["myparameter"];
  stockData = mockStockDao.getStockValues(paramValue);
 }
}
Run Code Online (Sandbox Code Playgroud)

BIRT的文件是指params集合.我如何在Java中掌握它?

干杯

java reporting birt

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