问题标签 [block]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
569 浏览

windows - 使用 VB.Net 阻止来自外部应用程序的 MsgBox

有没有办法从外部应用程序拦截 MsgBox() 并使用 VB.Net 阻止它?

对于本次讨论,假设 MsgBox 标题为“SQL 应用程序”,消息为“SQL 错误 - 重试”。

我发现了一些寻找要弹出的 MsgBox 的示例(通过查看窗口标题)然后发送键以按 OK,但我很好奇是否可以避免整个过程。否则,即使只是暂时的,用户仍然会看到 MsgBox 或“flash”。

有可能避免这种情况吗?

0 投票
2 回答
1560 浏览

java - 如何在 Java 7 中可移植地获取文件存储的块大小?

我看过java.nio.file.attribute.Attributesand java.nio.file.FileStore,但找不到发现磁盘文件块大小的方法。

0 投票
1 回答
832 浏览

deadlock - xlib/ xcb 死锁或阻塞

我有一个使用 xlib 和 cairo 开发的程序。仅供参考,我确实在 cairo 和 xlib 之间混合调用,尽管我不确定这是否可能是错误的原因。在某些情况下,我会遇到死锁或阻塞。我有三个与 xlib 一起工作的线程。一个是主 UI 线程,它同时调用 xlib 和 cairo,另一个使用它来发送 XClientMessage,第三个调用一些 xlib 调用,如 XCopyArea,最后发送一个 XClientMessage(那些用于某些动画)。我在程序开始时调用了 InitThreads。我还使用 XLockDisplay 保护了所有 xlib 调用(cairo 调用也使用 XLockDisplay 保护)。我正在使用 ubuntu 10.10。堆栈跟踪是:

(gdb)
__kernel_vsyscall () 中的线程 1 0
来自 /lib/tls/i686/cmov/libc.so.6 的 poll () 中的 1
2 在 ?? () 来自 /usr/lib/libxcb.so.1
3 在 ?? () from /usr/lib/libxcb.so.1
4 in xcb_writev () from /usr/lib/libxcb.so.1
5 in _XSend () from /usr/lib/libX11.so.6
6 in _XEventsQueued ()从 /usr/lib/libX11.so.6
7 在 XPending () 从 /usr/lib/libX11.so.6
(gdb) 线程 6
0 在 __kernel_vsyscall ()
1 在 __llll_lock_wait () 从
/lib/tls/i686/ cmov/libpthread.so.0
2 in _L_lock_752 () from /lib/tls/i686/cmov/libpthread.so.0
3 in pthread_mutex_lock () from /lib/tls/i686/cmov/libpthread.so.0
4 in ? ? () 来自 /usr/lib/libX11.so.6
5 在 XLockDisplay () 来自 /usr/lib/libX11.so.6
(gdb) 线程 7
0 在 __kernel_vsyscall ()
1 在 __lll_lock_wait () 来自 /lib/tls/i686/cmov/libpthread.so.0
2 在 _L_lock_752 ( ) 从 /lib/tls/i686/cmov/libpthread.so.0
3 在 pthread_mutex_lock () 从 /lib/tls/i686/cmov/libpthread.so.0
4 在 ?? () 来自 /usr/lib/libX11.so.6
5 在 XLockDisplay () 来自 /usr/lib/libX11.so.6
其中线程 1 是主 ui 线程,当前在事件循环中调用 XPending(它已经调用了 XLockDisplay),thead 7 是仅发送 XClientMessage 的线程,线程 6 是对 XCopyArea 进行了一些调用的线程,现在大约调用 XSendMessage(它与线程 7 一起等待线程 1 完成)。但是线程 1 似乎永远不会从民意调查中返回。我不确定它是否相关(我绝不是 linux 或 libc 方面的专家),但我有另一个线程正在轮询中等待(它是 TCP/IP 网络通信的线程)(gdb)线程 2
0 在__kernel_vsyscall ()
1 in poll () from /lib/tls/i686/cmov/libc.so.6
有没有人遇到过类似的死锁/阻塞?这可能是 xcb 中的错误吗?是否值得尝试在没有 xcb 的情况下编译 xlib?谢谢

0 投票
3 回答
571 浏览

java - 阻止 java 热键,例如 alt+esc、control-alt-delete

我正在构建一个 Java 应用程序,我需要阻止热键,例如Alt+ TabControl++ Alt...Delete基本上是这些。我的应用程序需要这个,因为它是一个控制应用程序。如果解决方案在 java 上是不可能的,那么任何人都知道另一种方法来做到这一点。

谢谢!

Edit1:我正在构建一个需要密码的“计算机管理器”。如果密码没有输入或密码错误,用户将无法在计算机上执行任何操作。它的工作方式类似于默认登录屏幕视图,但有许多用户。知道了?

Edit2 : 用户输入密码后,他可以使用所有(或部分,如alt+ tab:) 这些热键!知道了?[2]

0 投票
2 回答
2213 浏览

objective-c - Objective C Blocks:有没有办法避免“自我”被保留?

我试图尽可能简洁地写下来,但这并不容易描述——所以感谢阅读=)

我是 Open Source iPhone Framework Sparrow的主要开发者。Sparrow 以 Flash AS3 库为模型,因此具有与 AS3 类似的事件系统。目前,该系统通过指定选择器来工作——但我希望通过允许使用块作为事件侦听器来扩展该系统。但是,我遇到了内存管理问题。

我将向您展示一个典型的事件用例——就像现在处理的那样。

这很简单:当一个对象被添加到显示列表时,它会收到一个事件。目前,基类将事件监听器记录在一个 NSInvocation-objects 数组中。NSInvocation 以保留其目标和参数的方式创建。(用户可以这样做,但在 99% 的情况下,这不是必需的)。

不保留这些对象是有意识的选择:否则,即使用户在 dealloc 方法中删除了事件侦听器,上面的代码也会导致内存泄漏!原因如下:

乍一看,这似乎很好:init 方法中的保留与 dealloc 方法中的释放配对。但是,这不起作用,因为永远不会调用 dealloc 方法,因为保留计数永远不会达到零!

正如我所说,'addEventListener...'-方法确实出于这个原因,在其默认版本中不保留任何内容。由于事件的工作方式(它们几乎总是由“自我”或子对象分派,无论如何都会保留),这不是问题。

然而,现在我们来到了问题的核心部分:我不能用积木来做到这一点。查看事件处理的块变体,我希望它具有:

这看起来很棒,而且很容易使用。但是:当用户在“self”上调用方法或使用块中的成员变量时——嗯,几乎总是这样——块将自动保留“self”,并且对象永远不会被释放.

现在,我知道任何用户都可以通过对 self 进行 __block 引用来纠正这个问题,如下所示:

但是,老实说,我相信几乎所有用户都不知道这样做或忘记这样做。一个 API 不仅要易于使用,而且要难以误用,这显然违反了这一原则。API 的用户肯定会滥用它。

让我烦恼的是,我知道不必保留“自我”——它可以在我当前的实现中工作而无需保留它。所以想告诉块他不需要保留自我——我,图书馆,应该告诉块,这样用户就不必考虑它了。

在我的研究中,我还没有找到这样做的方法。而且我想不出一种方法来改变我的架构以适应块的限制。

有人知道我能做些什么吗?
即使您还没有,也感谢您阅读本文——我知道这是一个冗长的问题;-)

0 投票
1 回答
592 浏览

c# - 阻止 USB,基于容量/容量

我想使用 C# 阻止基于卷的 USB。如果容量大于 8GB,我想阻止 USB 记忆棒。

看看有一种方法可以使用注册表在 PC 上阻止 USB。但这会使 USB 无法检测到,因此我无法获取音量信息。

我想这样做如果我的客户端程序在某台机器上运行并且我限制了 USB 容量 >=8GB 应该受到限制,所以我的 C# 代码应该安全地移除 USB 并且现在应该显示任何气球,我的意思是默默地移除它。

0 投票
4 回答
1439 浏览

ruby - 如何将 Ruby 迭代器作为参数传递?

我想编写一个在一个地方产生值的方法,并将其作为参数传递给另一个方法,该方法将使用块调用它。我确信它可以完成,但不知何故我无法找到正确的语法。

这是一些示例(非工作)代码来说明我想要实现的目标:



FWIW,在我的真实代码中,yielder 和 user 属于不同的类。


更新

感谢您的回答。正如 Andrew Grimm 提到的,我希望迭代器方法采用参数。我原来的例子忽略了这个细节。这个片段提供了一个迭代器,它可以计数到给定的数字。为了使它工作,我明确了内部块。它做我想要的,但它有点难看。如果有人可以对此进行改进,我会非常有兴趣了解如何进行。

0 投票
4 回答
4390 浏览

mysql - MySQL InnoDB 锁问题

我有一个关于 MySQL InnoDB 的问题。例如:我创建了下表:

现在,我有两个到同一个数据库的 mysql 连接,我将它们命名为线程 A 和 B。在线程 A 中,我有以下 SQL 语句:

然后,我就让线程 A 保持原样。

在线程 B 中,我想做同样的查询:

线程B在锁等待超时后会抛出MySQL 1205 Error: Lock wait timeout exceeded; 尝试重新启动事务。

这是有道理的,因为线程 A 在该行上放置了“X”锁,因此线程 B 在线程 A 释放锁之前无法获得“X”锁。

现在,我的问题是:从线程 B 的角度来看,当 MySQL 向我返回错误 1205 时,我怎么知道哪个线程/连接阻塞了我的请求(以获得表 'SeqNum' 的 'UPDATE' 权限)?如果 threadA 在获得 X 锁后什么都不做,而我在线程 B 中运行“show processlist”,我所拥有的只是:几个具有“Sleep”状态的线程(我假设有两个以上的线程连接到数据库),我无法确定哪个线程阻止了我的请求?

希望我清楚地解释了这个问题。谢谢!

0 投票
4 回答
9701 浏览

c++ - while 循环中的 if/else 格式

用户输入名字后,我想提供输入第二个名字的选项。如果“N”直接跳到位置,如果“Y”跳到 Name2,然后跳到 Location。

0 投票
1 回答
1399 浏览

jquery - jQuery查找块元素的宽度

block如果要确定元素的宽度,是否有一种简单的方法inline?我无法制作元素inline,所以我需要一些方法来确定它应该有多宽,然后修改宽度。