jjzjj

flutter - 使用 BLoC 模式和 StatelessWidget 时如何调用 dispose

我试图理解BLoC模式,但我无法弄清楚在我的示例中何时何地调用dispose()。我正在尝试了解Flutter中的各种状态管理技术。我提出了一个使用StatefulWidget、scoped_model和流构建的示例。我相信我终于想出了如何使用“BloC”模式使我的示例工作,但是我在调​​用dispose()方法时遇到问题,因为我只使用StatelessWidgets。我尝试将PageOne和PageTwo转换为StatefulWidget并调用dispose()但最终在页面之间移动时过早地关闭了流。在我的示例中,我是否完全不必担心手动关闭流?import'package:flutte

flutter - 如何在 flutter 中设置 dispose() 后的状态?

我有2个页面,在第一页我有一个按钮,点击它会打开第二页,在第二页我有变量number=999;所以当我回到第一页时我想显示数字print(number);或显示在Text(number)上如何使用dispose()来实现?@overridevoiddispose(){super.dispose();//senddatatothefirstpage}谢谢你的回答 最佳答案 您可以在导航器的帮助下轻松完成此操作。Navigator.pushreturnsaFuturethatcompletesaftercallingNavigator.

c# - 什么时候需要在图形上使用 dispose()?

我正在学习用C#绘制东西,我一直看到有关使用dispose()的建议,但我不太明白它的作用。我应该什么时候使用dispose()代码绘制图形?如果我会怎样不?我需要每次都调用它吗时间图形不可见,例如就像在具有选项卡和用户切换到另一个选项卡,并且然后在他们切换回来时重新绘制它?如果我在不该调用的时候调用它,会破坏东西吗?bat侠能否逃脱clown的魔爪? 最佳答案 我什么时候应该在代码绘制的图形上使用dispose()?当您完全完成任何实现IDisposable的对象时,您应该调用在它有资格进行垃圾收集之前处理。正如其他人指出的那样,

c# - 在 "using"语句中使用 yield 时,Dispose 何时发生?

我有一个关于延迟执行和数据处理的问题。考虑以下示例:privateIEnumerableParseFile(stringfileName){using(StreamReadersr=newStreamReader(fileName)){stringline;while((line=sr.ReadLine())!=null){yieldreturnline;}}}privatevoidLineReader(stringfileName){intcounter=0;foreach(stringlineinParseFile(fileName)){if(counter==2){break;/

c# - GC、Finalize() 和 Dispose 之间的关系是什么?

GC用于托管对象,Finalize用于非托管对象,这就是我一直在阅读的内容。Dispose是隐式的,Finalize是Explicit是我一直在阅读的内容。有人可以给我一个模块的示例吗,其中出于不同原因使用了所有这三种东西? 最佳答案 GC是垃圾回收。它是自动内存管理,负责处理托管堆上分配的对象的清理。.NETGC采用标记清除算法。当发生垃圾回收时,它基本上认为要清理的堆部分中的所有对象都是可恢复的。然后它会经历一个标记过程,在这个过程中它会扫描根。IE。它标识应用程序仍在使用的对象。完成后,剩余的对象有资格进行清理。作为清理的一部

c# - 从使用 block 内部的异常检测 Dispose()

我的应用程序中有以下代码:using(vardatabase=newDatabase()){varpoll=//Somedatabasequerycode.foreach(Questionquestioninpoll.Questions){foreach(Answeranswerinquestion.Answers){database.Remove(answer);}//Thisisasamplelinethatsimulateanerror.thrownewException("deupau");database.Remove(question);}database.Remove(p

c# - 为什么在 asp.net MVC Controller 中需要显式 Dispose() 方法?谁能解释它的复杂性? (特定于 asp.net)

我知道C#可以通过其垃圾收集器很好地管理资源。但既然它有那个,它到底是做什么用的,为什么需要它?谁能解释为什么在asp.netmvc中需要.Dispose()?另外,Dispose连接是什么意思?为什么需要它?任何人都知道为什么像db.Dispose()那样处理数据库连接很重要?这是与EF相关还是与SQLServer相关?我正在尝试了解其中的确切原因。protectedoverridevoidDispose(booldisposing){db.Dispose();base.Dispose(disposing);} 最佳答案 Disp

c# - 在 IDisposable.Dispose 中拦截异常

在IDisposable.Dispose方法中有没有办法判断是否抛出异常?using(MyWrapperwrapper=newMyWrapper()){thrownewException("Baderror.");}如果在using语句中抛出异常,我想在释放IDisposable对象时了解它。 最佳答案 您可以扩展IDisposable用方法Complete并使用这样的模式:using(MyWrapperwrapper=newMyWrapper()){thrownewException("Baderror.");wrapper.Co

c# - Dispose() 方法中 GC.SuppressFinalize(this) 的目的是什么?

我有以下代码:publicvoidDispose(){if(_instance!=null){_instance=null;//CallGC.SupressFinalizetotakethisobjectoffthefinalization//queueandpreventfinalizationcodeforthisobjectfrom//executingasecondtime.GC.SuppressFinalize(this);}}虽然有评论解释了那个与GC相关的调用的目的,但我仍然不明白为什么它在那里。一旦所有实例不复存在,对象是否注定要进行垃圾回收,例如在usingblock

c# - Dispose,什么时候调用?

考虑以下代码:namespaceDisposeTest{usingSystem;classProgram{staticvoidMain(string[]args){Console.WriteLine("CallingTest");Test();Console.WriteLine("CalltoTestdone");}staticvoidTest(){DisposeImplementationdi=newDisposeImplementation();}}internalclassDisposeImplementation:IDisposable{~DisposeImplementati