gpt4 book ai didi

Dart 原生扩展 : How to create "Push" data stream

转载 作者:行者123 更新时间:2023-12-03 02:58:14 26 4
gpt4 key购买 nike

我将在概念上引用“推送”与“轮询”流来帮助描述我的问题的目标,即“*创建一个推送数据流来模拟 Dart 的标准输入流的数据流行为*”

“轮询”:在我的 previous question , Menzoni 的回答是“轮询”流的一个很好的例子。流总是从 Dart 控制台应用程序启动并请求数据到 native 扩展。请求得到满足,并且响应返回到应用程序。根据我的经验,这是 Dart 流的典型用法。

“推送”:来自外部源的数据被推送到控制台应用程序。数据来源和传输技术无关紧要,它可以是标准输入键盘/鼠标事件、PLC 中断、数据库异步通知等。

我将使用 stdin 流来说明这个例子,它是我试图实现的数据流的一个很好的例子。 virtualkeycodes/ints 形式的数据到达 native 扩展,缓冲,然后需要“推送”(发送/发布)到 Dart 应用程序,而不需要来自应用程序的任何拉/轮询数据请求。这是我试图在我的原生扩展的自定义流中实现的目标!

Dart 控制台应用程序伪代码:

Stream<List<int>> virtKeyCodes = NativeCreatePushedStream_Keycodes();   
virtKeyCodes.listen(processInts);
void processInts(List<int> kbinput) {
print("processInts: found ${kbinput.length} kbinput chars");
for (int i = 0; i < kbinput.length; i++) {
print("...kbinput:${kbinput[i]}");
}
}

native 扩展伪代码( 我猜这里!)

Initial call create persistant stream
Return to console app where it starts to listen
onDataReady somehow post ints to stream
DartVM pushes to console app

谢谢你的帮助。

最佳答案

通过 asynchronous native extension 实现“推送”数据流

已创建 dxConsole “Windows 的 Dart 控制台库”项目,现在托管在 Github 上。

关于Dart 原生扩展 : How to create "Push" data stream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24973148/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com