2
我想知道如何在qt中實現異步文件io?這甚至可以在香草qt中實現,或者是否有人需要使用另一個庫(例如libuv)來實現這樣的功能?我在看QDataStream,但即使它是一個「流」它不是非阻塞。我想一個解決方案是製作一個自定義的QIODevice,它在內部使用libuv,然後可以與QDataStream一起使用,但不知道從哪裏開始。有任何想法嗎?如何在qt中做異步文件io?
感謝您提供任何幫助。
我想知道如何在qt中實現異步文件io?這甚至可以在香草qt中實現,或者是否有人需要使用另一個庫(例如libuv)來實現這樣的功能?我在看QDataStream,但即使它是一個「流」它不是非阻塞。我想一個解決方案是製作一個自定義的QIODevice,它在內部使用libuv,然後可以與QDataStream一起使用,但不知道從哪裏開始。有任何想法嗎?如何在qt中做異步文件io?
感謝您提供任何幫助。
我會實現一個處理I/O的線程。您可以連接適當的sig/slots以從主線程向IO線程「調用」IO。您可以將要讀取/寫入的數據作爲參數傳遞給信號。這樣的事情:
class FileIOThread : public QThread
{
public:
void run();
public slots:
void writeData(QByteArray &)
void readData(QByteArray &)
};
class MyClass
{
private:
FileIOThread m_writerThread;
signals:
void sendData(QByteArray &);
....
};
MyClass::MyClass()
{
connect(this, SIGNAL(sendData(QByteArray&)),
&m_writerThread,SLOT(writeData(QByteArray&)));
....
}
在另一個線程中的同步IO? – alxx
我認爲他想要的是一個雙向I/O端口。 –