问题列表 - 第41526页

如何异步扫描和传输文档进纸器中的图像

与TWAIN通信的哪些部分可以放入另一个线程,例如BackgroundWorker?或者:是否可以拆分处理图像传输的循环?

某些扫描仪驱动程序会在返回调用应用程序之前扫描所有图像,这会强制应用程序立即处理所有图像.这导致例如OutOfMemoryException或我的WPF应用程序中的奇怪行为,当突然所有事件(在每个扫描图像之后引发)必须立即处理.此外,应用程序会挂起,直到传输完成.

我正在使用TwainDotNet:http://code.google.com/p/twaindotnet/但我也在寻找一个通用的解决方案,描述消息过滤器以及与TWAIN独立的TwainDotNet的交互.包含TWAIN消息的工作流程就足够了.其他语言也很受欢迎,比较喜欢C或Deplhi.

DataSourceManager中消息过滤器的当前实现可以描述如下:

  • 从窗口句柄(hwnd)获取消息信息
  • 复制过滤器,将内容发送到TWAIN等.
  • 如果消息关闭(例如,在TWAIN UI中按取消按钮时)
    • 关闭数据源
    • 禁用过滤器
    • 调用ScanningComplete事件
  • 如果邮件传输准备好:
    • 在循环中(直到ADF为空等,这会阻止消息过滤器)
      • 获取图片
      • 将图像指针转换为GDI +图像
      • 以image为参数调用TransferImage事件
    • 重置转移
    • 关闭数据源等(与消息关闭相同)
  • 通知窗口,消息已被处理

我用几台扫描仪测试了这个:

  • 每次传输页面时,Fujitsu fi-5120C都会调用TransferImage事件.图像立即弹出我的WPF应用程序中的图像列表.
  • 佳能DR-5010C会阻止我的WPF应用程序,直到扫描完所有图像(直到循环结束).Windows甚至说,WPF应用程序没有响应.传输完所有图像后,只显示少量图像,图像列表中的选择闪烁等.

我不关心显示问题,而是关注被阻止的窗口和内存问题.将将图像传输到BackgroundWorker的循环导致几次崩溃,我无法调试.因为我考虑了WPF的线程问题.我也不知道如何拆分传输循环,这样,在传输一个图像后,程序返回到消息过滤器,消息可以标记为已处理.

.net twain hwnd backgroundworker

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

MVVM中的模型是什么?

应该进入模型的东西也可以进入视图模型,即公共属性,IDataErroInfo和INotifyPropertyChanged,那么实际应该进入模型的是什么?

wpf mvvm

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

Global.asax.cs中的Session_End未使用表单身份验证触发

我有一个使用窗体身份验证设置为45分钟超时的asp.net 4.0应用程序。我想在会话过期后将用户重定向到超时页面。谁能告诉我该怎么做?我正在运行.net 4.0。

web.config具有:

<authentication mode="Forms">
  <forms name=".ASPXAUTH" loginUrl="~/Login.aspx"
    defaultUrl="~/Default.aspx" protection="All" timeout="45"
    requireSSL="false">
  </forms>
</authentication>
Run Code Online (Sandbox Code Playgroud)

Global.asax.cs文件具有:

void Session_End(object sender, EventArgs e)
{
    Response.Redirect("~/Timeout.aspx");
}  
Run Code Online (Sandbox Code Playgroud)

c# asp.net forms-authentication session-timeout

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

sqrt(1.0 - pow(1.0,2))返回-nan

我发现了一个有趣的浮点问题.我必须在我的代码中计算几个平方根,表达式如下:

sqrt(1.0 - pow(pos,2))
Run Code Online (Sandbox Code Playgroud)

其中pos在循环中从-1.0到1.0.-1.0对于pow来说很好,但是当pos = 1.0时,我得到了一个-nan.做一些测试,使用gcc 4.4.5和icc 12.0,输出

1.0 - pow(pos,2) = -1.33226763e-15
Run Code Online (Sandbox Code Playgroud)

1.0 - pow(1.0,2) = 0
Run Code Online (Sandbox Code Playgroud)

要么

poss = 1.0
1.0 - pow(poss,2) = 0
Run Code Online (Sandbox Code Playgroud)

显而易见,第一个会出现问题,而是消极的.任何人都知道为什么pow返回的数字小于0?完整的违规代码如下:

int main() {
  double n_max = 10;
  double a = -1.0;
  double b = 1.0;
  int divisions = int(5 * n_max);
  assert (!(b == a));

  double interval = b - a;
  double delta_theta = interval / divisions;
  double delta_thetaover2 = delta_theta / 2.0;
  double pos = a;
  //for (int i …
Run Code Online (Sandbox Code Playgroud)

c++

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

标准删除链接不使用Rails3 + JQuery UJS

我正在使用JQuery 1.4.4和jQuery UJS rails.js(https://github.com/rails/jquery-ujs)制作Ruby On Rails 3.0.3应用程序

我有脚手架生成的模型/视图/控制器 - 文档,我在app/views/documents/index.html.haml文件中删除链接:

link_to "delete", document, :confirm => "Are you sure?", :method => :delete

这会生成以下HTML:

<a href="/documents/1" data-confirm="Are you sure?" data-method="delete" rel="nofollow">Destroy</a>

这似乎很好.

当我点击这个" 销毁 "链接然后我看到浏览器确认(),当我点击取消时,我希望什么都不会发生.

删除功能并删除文档.

有没有人有同样的问题,或者我做错了什么?

目前我已经挖掘了这个:

我查看了jquery-ujs rails.js,并且有两个.live()事件附加到同一个锚点:

1)$('a [数据确认],输入[data-confirm]').live('click',function(){...}

2)$('a [数据方法]:不是([data-remote])').live('click',function(e){...}

第一个live()执行返回false; 据我所知,应该制动所有执行链,但事实并非如此.第二个live()仍然执行,第二个live()是生成表单并提交给destroy动作的地方.

jquery ujs ruby-on-rails-3

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

在UItableview中选择如何检查单元格以进行图像显示

我的应用程序是导航基地.我有UITableViewController.当我点击一个单元格时,我需要在所选单元格的左侧显示复选标记以选择单元格的指示.例如2个细胞.选择第一个单元格我需要指示单元格被选中用于复选标记.如果我选择第二个单元格我需要禁用第一个单元格复选标记,我需要在第二个单元格中显示复选标记.检查单元格选择.

iphone xcode objective-c uitableview ios

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

密钥订单在MongoDB BSON doc中是否重要?

我知道某些赞扬需要对hashmap/dictionary进行排序,但是MongoDB中的实际BSON文档是否重要且索引是否仍然有效?

例如

db.people.ensureIndex({LName:1, FName:1});
Run Code Online (Sandbox Code Playgroud)

它会同时适用于:

{LName:"abc", FName:"def"}, 
{FName:"ghi", LName:"jkl"} 
Run Code Online (Sandbox Code Playgroud)

谢谢

mongodb bson

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

为什么不用fork()分割的进程通过这个函数进行相同的操作?

我对C/C++中的fork()函数感到困惑.给出以下代码:

void fork2()
{
    printf("LO\n");
    fork()
    printf("L1\n");
    fork();
    printf("Bye!\n");
}
Run Code Online (Sandbox Code Playgroud)

讲座幻灯片给出了下图

         ______Bye
   ___L1|______Bye
  |      ______Bye
L0|___L1|______Bye
Run Code Online (Sandbox Code Playgroud)

对我来说,这个图没有任何意义.我希望每次调用fork都会导致调用printf("LO\n").还是我错了?

c c++

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

表中列的顺序是否重要?

我们有许多大大小小的项目 - 大多数(如果不是全部)项目至少使用一个SQL Server数据库.所有这些都设置了不同的环境.通常:dev(1 +),QA,UAT,Live.我们通常会相互独立地向不同的环境发布各种代码更新.当然,其中一些更新带有架构更新脚本,例如

alter table foo add column bar
go
update foo set bar=... where ...
Run Code Online (Sandbox Code Playgroud)

有时是手工制作,有时使用Red Gate SQL/Data Compare.

无论如何,我要去的地方通常是同一个项目的不同环境最终会有不同的列顺序.这是一个问题吗?我真的不知道......列顺序是否有任何性能影响?我可能遗失的任何东西?

sql-server

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

排序算法:具有可变长度行的大文本文件(以逗号分隔的值)

什么是一个很好的算法来排序大于可用内存(许多10千兆字节)并包含可变长度记录的文本文件?我见过的所有算法都假设1)数据适合内存,或者2)记录是固定长度的.但想象一下我想按"BirthDate"字段(第4个字段)排序的大型CSV文件:

Id,UserId,Name,BirthDate
1,psmith,"Peter Smith","1984/01/01"
2,dmehta,"Divya Mehta","1985/11/23"
3,scohen,"Saul Cohen","1984/08/19"
...
99999999,swright,"Shaun Wright","1986/04/12"
100000000,amarkov,"Anya Markov","1984/10/31"
Run Code Online (Sandbox Code Playgroud)

我知道:

  1. 这将在台机器上运行(未分发).
  2. 我运行它的机器将有几个处理器.
  3. 我要排序的文件可能比机器的物理内存大.
  4. 文件包含可变长度的行.每行包含固定数量的列(分隔符分隔值).文件将按特定字段(即文件中的第4个字段)排序.
  5. 一个理想的解决方案可能是"使用这个现有的排序实用程序",但我正在寻找最好的算法.
  6. 我不期望一个完全编码的,有效的答案; 更多的事情是"检查出来,这里是它的工作方式,或者这就是为什么它适用于这个问题." 我只是不知道在哪里看......
  7. 这不是功课!

谢谢!♥

language-agnostic sorting algorithm file lines

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